package org.csu.idl.xtext.ui.contentassist.antlr.internal; 

import java.io.InputStream;
import org.eclipse.xtext.*;
import org.eclipse.xtext.parser.*;
import org.eclipse.xtext.parser.impl.*;
import org.eclipse.xtext.parsetree.*;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.xtext.parser.antlr.XtextTokenStream;
import org.eclipse.xtext.parser.antlr.XtextTokenStream.HiddenTokens;
import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.AbstractInternalContentAssistParser;
import org.eclipse.xtext.ui.editor.contentassist.antlr.internal.DFA;
import org.csu.idl.xtext.services.IDLGrammarAccess;



import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
@SuppressWarnings("all")
public class InternalIDLParser extends AbstractInternalContentAssistParser {
    public static final String[] tokenNames = new String[] {
        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "RULE_INT", "RULE_STRING", "RULE_HEX_LITERAL", "RULE_WIDE_STRING_LITERAL", "RULE_FIXED_PT_LITERAL", "RULE_FLOATING_PT_LITERAL", "RULE_BOOLEAN_LITERAL", "RULE_ID", "RULE_ML_COMMENT", "RULE_SL_COMMENT", "RULE_WS", "RULE_ANY_OTHER", "'float'", "'double'", "'short'", "'long'", "'char'", "'wchar'", "'string'", "'wstring'", "'boolean'", "'octet'", "'any'", "'Object'", "'void'", "';'", "'abstract'", "'local'", "'>>'", "'<<'", "'+'", "'-'", "'*'", "'/'", "'%'", "'~'", "'in'", "'out'", "'inout'", "'#include'", "'module'", "'{'", "'}'", "'interface'", "':'", "','", "'('", "')'", "'raises'", "'context'", "'attribute'", "'getraises'", "'setraises'", "'exception'", "'native'", "'typedef'", "'['", "']'", "'struct'", "'union'", "'switch'", "'case'", "'default'", "'enum'", "'const'", "'='", "'sequence'", "'<'", "'>'", "'fixed'", "'unsigned'", "'oneway'", "'readonly'", "'|'", "'^'", "'&'"
    };
    public static final int RULE_FIXED_PT_LITERAL=8;
    public static final int RULE_ID=11;
    public static final int RULE_STRING=5;
    public static final int RULE_BOOLEAN_LITERAL=10;
    public static final int RULE_FLOATING_PT_LITERAL=9;
    public static final int RULE_WIDE_STRING_LITERAL=7;
    public static final int RULE_ANY_OTHER=15;
    public static final int RULE_HEX_LITERAL=6;
    public static final int RULE_INT=4;
    public static final int RULE_WS=14;
    public static final int RULE_SL_COMMENT=13;
    public static final int EOF=-1;
    public static final int RULE_ML_COMMENT=12;

        public InternalIDLParser(TokenStream input) {
            super(input);
            ruleMemo = new HashMap[972+1];
         }
        

    public String[] getTokenNames() { return tokenNames; }
    public String getGrammarFileName() { return "../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g"; }


     
     	private IDLGrammarAccess grammarAccess;
     	
        public void setGrammarAccess(IDLGrammarAccess grammarAccess) {
        	this.grammarAccess = grammarAccess;
        }
        
        @Override
        protected Grammar getGrammar() {
        	return grammarAccess.getGrammar();
        }
        
        @Override
        protected String getValueForTokenName(String tokenName) {
        	return tokenName;
        }




    // $ANTLR start entryRulespecification
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:62:1: entryRulespecification : rulespecification EOF ;
    public final void entryRulespecification() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:63:1: ( rulespecification EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:64:1: rulespecification EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getSpecificationRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulespecification_in_entryRulespecification67);
            rulespecification();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getSpecificationRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulespecification74); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRulespecification


    // $ANTLR start rulespecification
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:71:1: rulespecification : ( ( rule__Specification__Group__0 ) ) ;
    public final void rulespecification() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:75:2: ( ( ( rule__Specification__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:76:1: ( ( rule__Specification__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:76:1: ( ( rule__Specification__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:77:1: ( rule__Specification__Group__0 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getSpecificationAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:78:1: ( rule__Specification__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:78:2: rule__Specification__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Specification__Group__0_in_rulespecification100);
            rule__Specification__Group__0();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getSpecificationAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rulespecification


    // $ANTLR start entryRuleinclude_decl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:90:1: entryRuleinclude_decl : ruleinclude_decl EOF ;
    public final void entryRuleinclude_decl() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:91:1: ( ruleinclude_decl EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:92:1: ruleinclude_decl EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getInclude_declRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleinclude_decl_in_entryRuleinclude_decl127);
            ruleinclude_decl();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getInclude_declRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleinclude_decl134); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleinclude_decl


    // $ANTLR start ruleinclude_decl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:99:1: ruleinclude_decl : ( ( rule__Include_decl__Group__0 ) ) ;
    public final void ruleinclude_decl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:103:2: ( ( ( rule__Include_decl__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:104:1: ( ( rule__Include_decl__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:104:1: ( ( rule__Include_decl__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:105:1: ( rule__Include_decl__Group__0 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getInclude_declAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:106:1: ( rule__Include_decl__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:106:2: rule__Include_decl__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Include_decl__Group__0_in_ruleinclude_decl160);
            rule__Include_decl__Group__0();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getInclude_declAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleinclude_decl


    // $ANTLR start entryRuledefinition
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:118:1: entryRuledefinition : ruledefinition EOF ;
    public final void entryRuledefinition() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:119:1: ( ruledefinition EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:120:1: ruledefinition EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getDefinitionRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruledefinition_in_entryRuledefinition187);
            ruledefinition();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getDefinitionRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuledefinition194); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuledefinition


    // $ANTLR start ruledefinition
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:127:1: ruledefinition : ( ( rule__Definition__Alternatives ) ) ;
    public final void ruledefinition() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:131:2: ( ( ( rule__Definition__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:132:1: ( ( rule__Definition__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:132:1: ( ( rule__Definition__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:133:1: ( rule__Definition__Alternatives )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getDefinitionAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:134:1: ( rule__Definition__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:134:2: rule__Definition__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Definition__Alternatives_in_ruledefinition220);
            rule__Definition__Alternatives();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getDefinitionAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruledefinition


    // $ANTLR start entryRulemodule
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:146:1: entryRulemodule : rulemodule EOF ;
    public final void entryRulemodule() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:147:1: ( rulemodule EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:148:1: rulemodule EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getModuleRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulemodule_in_entryRulemodule247);
            rulemodule();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getModuleRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulemodule254); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRulemodule


    // $ANTLR start rulemodule
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:155:1: rulemodule : ( ( rule__Module__Group__0 ) ) ;
    public final void rulemodule() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:159:2: ( ( ( rule__Module__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:160:1: ( ( rule__Module__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:160:1: ( ( rule__Module__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:161:1: ( rule__Module__Group__0 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getModuleAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:162:1: ( rule__Module__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:162:2: rule__Module__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Module__Group__0_in_rulemodule280);
            rule__Module__Group__0();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getModuleAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rulemodule


    // $ANTLR start entryRuleinterface_decl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:174:1: entryRuleinterface_decl : ruleinterface_decl EOF ;
    public final void entryRuleinterface_decl() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:175:1: ( ruleinterface_decl EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:176:1: ruleinterface_decl EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getInterface_declRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleinterface_decl_in_entryRuleinterface_decl307);
            ruleinterface_decl();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getInterface_declRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleinterface_decl314); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleinterface_decl


    // $ANTLR start ruleinterface_decl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:183:1: ruleinterface_decl : ( ( rule__Interface_decl__Group__0 ) ) ;
    public final void ruleinterface_decl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:187:2: ( ( ( rule__Interface_decl__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:188:1: ( ( rule__Interface_decl__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:188:1: ( ( rule__Interface_decl__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:189:1: ( rule__Interface_decl__Group__0 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getInterface_declAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:190:1: ( rule__Interface_decl__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:190:2: rule__Interface_decl__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Group__0_in_ruleinterface_decl340);
            rule__Interface_decl__Group__0();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getInterface_declAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleinterface_decl


    // $ANTLR start entryRuleinterface_fwd
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:202:1: entryRuleinterface_fwd : ruleinterface_fwd EOF ;
    public final void entryRuleinterface_fwd() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:203:1: ( ruleinterface_fwd EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:204:1: ruleinterface_fwd EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getInterface_fwdRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleinterface_fwd_in_entryRuleinterface_fwd367);
            ruleinterface_fwd();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getInterface_fwdRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleinterface_fwd374); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleinterface_fwd


    // $ANTLR start ruleinterface_fwd
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:211:1: ruleinterface_fwd : ( ( rule__Interface_fwd__Group__0 ) ) ;
    public final void ruleinterface_fwd() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:215:2: ( ( ( rule__Interface_fwd__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:216:1: ( ( rule__Interface_fwd__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:216:1: ( ( rule__Interface_fwd__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:217:1: ( rule__Interface_fwd__Group__0 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getInterface_fwdAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:218:1: ( rule__Interface_fwd__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:218:2: rule__Interface_fwd__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Interface_fwd__Group__0_in_ruleinterface_fwd400);
            rule__Interface_fwd__Group__0();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getInterface_fwdAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleinterface_fwd


    // $ANTLR start entryRuleexport
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:230:1: entryRuleexport : ruleexport EOF ;
    public final void entryRuleexport() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:231:1: ( ruleexport EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:232:1: ruleexport EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getExportRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleexport_in_entryRuleexport427);
            ruleexport();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getExportRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleexport434); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleexport


    // $ANTLR start ruleexport
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:239:1: ruleexport : ( ( rule__Export__Alternatives ) ) ;
    public final void ruleexport() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:243:2: ( ( ( rule__Export__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:244:1: ( ( rule__Export__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:244:1: ( ( rule__Export__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:245:1: ( rule__Export__Alternatives )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getExportAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:246:1: ( rule__Export__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:246:2: rule__Export__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Export__Alternatives_in_ruleexport460);
            rule__Export__Alternatives();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getExportAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleexport


    // $ANTLR start entryRuleop_decl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:258:1: entryRuleop_decl : ruleop_decl EOF ;
    public final void entryRuleop_decl() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:259:1: ( ruleop_decl EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:260:1: ruleop_decl EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOp_declRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleop_decl_in_entryRuleop_decl487);
            ruleop_decl();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getOp_declRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleop_decl494); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleop_decl


    // $ANTLR start ruleop_decl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:267:1: ruleop_decl : ( ( rule__Op_decl__Group__0 ) ) ;
    public final void ruleop_decl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:271:2: ( ( ( rule__Op_decl__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:272:1: ( ( rule__Op_decl__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:272:1: ( ( rule__Op_decl__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:273:1: ( rule__Op_decl__Group__0 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:274:1: ( rule__Op_decl__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:274:2: rule__Op_decl__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group__0_in_ruleop_decl520);
            rule__Op_decl__Group__0();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleop_decl


    // $ANTLR start entryRuleop_type_spec
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:286:1: entryRuleop_type_spec : ruleop_type_spec EOF ;
    public final void entryRuleop_type_spec() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:287:1: ( ruleop_type_spec EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:288:1: ruleop_type_spec EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOp_type_specRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleop_type_spec_in_entryRuleop_type_spec547);
            ruleop_type_spec();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getOp_type_specRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleop_type_spec554); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleop_type_spec


    // $ANTLR start ruleop_type_spec
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:295:1: ruleop_type_spec : ( ( rule__Op_type_spec__Alternatives ) ) ;
    public final void ruleop_type_spec() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:299:2: ( ( ( rule__Op_type_spec__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:300:1: ( ( rule__Op_type_spec__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:300:1: ( ( rule__Op_type_spec__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:301:1: ( rule__Op_type_spec__Alternatives )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOp_type_specAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:302:1: ( rule__Op_type_spec__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:302:2: rule__Op_type_spec__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_type_spec__Alternatives_in_ruleop_type_spec580);
            rule__Op_type_spec__Alternatives();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getOp_type_specAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleop_type_spec


    // $ANTLR start entryRuleparam_decl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:314:1: entryRuleparam_decl : ruleparam_decl EOF ;
    public final void entryRuleparam_decl() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:315:1: ( ruleparam_decl EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:316:1: ruleparam_decl EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getParam_declRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleparam_decl_in_entryRuleparam_decl607);
            ruleparam_decl();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getParam_declRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleparam_decl614); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleparam_decl


    // $ANTLR start ruleparam_decl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:323:1: ruleparam_decl : ( ( rule__Param_decl__Group__0 ) ) ;
    public final void ruleparam_decl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:327:2: ( ( ( rule__Param_decl__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:328:1: ( ( rule__Param_decl__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:328:1: ( ( rule__Param_decl__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:329:1: ( rule__Param_decl__Group__0 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getParam_declAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:330:1: ( rule__Param_decl__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:330:2: rule__Param_decl__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Param_decl__Group__0_in_ruleparam_decl640);
            rule__Param_decl__Group__0();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getParam_declAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleparam_decl


    // $ANTLR start entryRuleattr_decl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:342:1: entryRuleattr_decl : ruleattr_decl EOF ;
    public final void entryRuleattr_decl() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:343:1: ( ruleattr_decl EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:344:1: ruleattr_decl EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_declRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleattr_decl_in_entryRuleattr_decl667);
            ruleattr_decl();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_declRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleattr_decl674); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleattr_decl


    // $ANTLR start ruleattr_decl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:351:1: ruleattr_decl : ( ( rule__Attr_decl__Alternatives ) ) ;
    public final void ruleattr_decl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:355:2: ( ( ( rule__Attr_decl__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:356:1: ( ( rule__Attr_decl__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:356:1: ( ( rule__Attr_decl__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:357:1: ( rule__Attr_decl__Alternatives )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_declAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:358:1: ( rule__Attr_decl__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:358:2: rule__Attr_decl__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_decl__Alternatives_in_ruleattr_decl700);
            rule__Attr_decl__Alternatives();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_declAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleattr_decl


    // $ANTLR start entryRulereadonly_attr_spec
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:370:1: entryRulereadonly_attr_spec : rulereadonly_attr_spec EOF ;
    public final void entryRulereadonly_attr_spec() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:371:1: ( rulereadonly_attr_spec EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:372:1: rulereadonly_attr_spec EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulereadonly_attr_spec_in_entryRulereadonly_attr_spec727);
            rulereadonly_attr_spec();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulereadonly_attr_spec734); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRulereadonly_attr_spec


    // $ANTLR start rulereadonly_attr_spec
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:379:1: rulereadonly_attr_spec : ( ( rule__Readonly_attr_spec__Alternatives ) ) ;
    public final void rulereadonly_attr_spec() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:383:2: ( ( ( rule__Readonly_attr_spec__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:384:1: ( ( rule__Readonly_attr_spec__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:384:1: ( ( rule__Readonly_attr_spec__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:385:1: ( rule__Readonly_attr_spec__Alternatives )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:386:1: ( rule__Readonly_attr_spec__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:386:2: rule__Readonly_attr_spec__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Alternatives_in_rulereadonly_attr_spec760);
            rule__Readonly_attr_spec__Alternatives();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rulereadonly_attr_spec


    // $ANTLR start entryRuleattr_spec
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:398:1: entryRuleattr_spec : ruleattr_spec EOF ;
    public final void entryRuleattr_spec() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:399:1: ( ruleattr_spec EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:400:1: ruleattr_spec EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_specRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleattr_spec_in_entryRuleattr_spec787);
            ruleattr_spec();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_specRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleattr_spec794); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleattr_spec


    // $ANTLR start ruleattr_spec
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:407:1: ruleattr_spec : ( ( rule__Attr_spec__Alternatives ) ) ;
    public final void ruleattr_spec() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:411:2: ( ( ( rule__Attr_spec__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:412:1: ( ( rule__Attr_spec__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:412:1: ( ( rule__Attr_spec__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:413:1: ( rule__Attr_spec__Alternatives )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:414:1: ( rule__Attr_spec__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:414:2: rule__Attr_spec__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Alternatives_in_ruleattr_spec820);
            rule__Attr_spec__Alternatives();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleattr_spec


    // $ANTLR start entryRuleexcept_decl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:426:1: entryRuleexcept_decl : ruleexcept_decl EOF ;
    public final void entryRuleexcept_decl() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:427:1: ( ruleexcept_decl EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:428:1: ruleexcept_decl EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getExcept_declRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleexcept_decl_in_entryRuleexcept_decl847);
            ruleexcept_decl();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getExcept_declRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleexcept_decl854); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleexcept_decl


    // $ANTLR start ruleexcept_decl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:435:1: ruleexcept_decl : ( ( rule__Except_decl__Group__0 ) ) ;
    public final void ruleexcept_decl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:439:2: ( ( ( rule__Except_decl__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:440:1: ( ( rule__Except_decl__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:440:1: ( ( rule__Except_decl__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:441:1: ( rule__Except_decl__Group__0 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getExcept_declAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:442:1: ( rule__Except_decl__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:442:2: rule__Except_decl__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Except_decl__Group__0_in_ruleexcept_decl880);
            rule__Except_decl__Group__0();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getExcept_declAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleexcept_decl


    // $ANTLR start entryRuletype_decl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:454:1: entryRuletype_decl : ruletype_decl EOF ;
    public final void entryRuletype_decl() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:455:1: ( ruletype_decl EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:456:1: ruletype_decl EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getType_declRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruletype_decl_in_entryRuletype_decl907);
            ruletype_decl();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getType_declRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuletype_decl914); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuletype_decl


    // $ANTLR start ruletype_decl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:463:1: ruletype_decl : ( ( rule__Type_decl__Alternatives ) ) ;
    public final void ruletype_decl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:467:2: ( ( ( rule__Type_decl__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:468:1: ( ( rule__Type_decl__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:468:1: ( ( rule__Type_decl__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:469:1: ( rule__Type_decl__Alternatives )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getType_declAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:470:1: ( rule__Type_decl__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:470:2: rule__Type_decl__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Type_decl__Alternatives_in_ruletype_decl940);
            rule__Type_decl__Alternatives();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getType_declAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruletype_decl


    // $ANTLR start entryRulealias_type
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:482:1: entryRulealias_type : rulealias_type EOF ;
    public final void entryRulealias_type() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:483:1: ( rulealias_type EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:484:1: rulealias_type EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAlias_typeRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulealias_type_in_entryRulealias_type967);
            rulealias_type();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getAlias_typeRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulealias_type974); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRulealias_type


    // $ANTLR start rulealias_type
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:491:1: rulealias_type : ( ( rule__Alias_type__Alternatives ) ) ;
    public final void rulealias_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:495:2: ( ( ( rule__Alias_type__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:496:1: ( ( rule__Alias_type__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:496:1: ( ( rule__Alias_type__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:497:1: ( rule__Alias_type__Alternatives )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAlias_typeAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:498:1: ( rule__Alias_type__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:498:2: rule__Alias_type__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Alias_type__Alternatives_in_rulealias_type1000);
            rule__Alias_type__Alternatives();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getAlias_typeAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rulealias_type


    // $ANTLR start entryRulearray_type_spec
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:510:1: entryRulearray_type_spec : rulearray_type_spec EOF ;
    public final void entryRulearray_type_spec() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:511:1: ( rulearray_type_spec EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:512:1: rulearray_type_spec EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getArray_type_specRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulearray_type_spec_in_entryRulearray_type_spec1027);
            rulearray_type_spec();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getArray_type_specRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulearray_type_spec1034); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRulearray_type_spec


    // $ANTLR start rulearray_type_spec
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:519:1: rulearray_type_spec : ( ( rule__Array_type_spec__Group__0 ) ) ;
    public final void rulearray_type_spec() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:523:2: ( ( ( rule__Array_type_spec__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:524:1: ( ( rule__Array_type_spec__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:524:1: ( ( rule__Array_type_spec__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:525:1: ( rule__Array_type_spec__Group__0 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getArray_type_specAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:526:1: ( rule__Array_type_spec__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:526:2: rule__Array_type_spec__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Array_type_spec__Group__0_in_rulearray_type_spec1060);
            rule__Array_type_spec__Group__0();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getArray_type_specAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rulearray_type_spec


    // $ANTLR start entryRulesimple_type_spec
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:538:1: entryRulesimple_type_spec : rulesimple_type_spec EOF ;
    public final void entryRulesimple_type_spec() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:539:1: ( rulesimple_type_spec EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:540:1: rulesimple_type_spec EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getSimple_type_specRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulesimple_type_spec_in_entryRulesimple_type_spec1087);
            rulesimple_type_spec();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getSimple_type_specRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulesimple_type_spec1094); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRulesimple_type_spec


    // $ANTLR start rulesimple_type_spec
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:547:1: rulesimple_type_spec : ( ( rule__Simple_type_spec__Alternatives ) ) ;
    public final void rulesimple_type_spec() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:551:2: ( ( ( rule__Simple_type_spec__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:552:1: ( ( rule__Simple_type_spec__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:552:1: ( ( rule__Simple_type_spec__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:553:1: ( rule__Simple_type_spec__Alternatives )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getSimple_type_specAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:554:1: ( rule__Simple_type_spec__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:554:2: rule__Simple_type_spec__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Simple_type_spec__Alternatives_in_rulesimple_type_spec1120);
            rule__Simple_type_spec__Alternatives();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getSimple_type_specAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rulesimple_type_spec


    // $ANTLR start entryRulebase_type_spec
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:566:1: entryRulebase_type_spec : rulebase_type_spec EOF ;
    public final void entryRulebase_type_spec() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:567:1: ( rulebase_type_spec EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:568:1: rulebase_type_spec EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getBase_type_specRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulebase_type_spec_in_entryRulebase_type_spec1147);
            rulebase_type_spec();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getBase_type_specRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulebase_type_spec1154); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRulebase_type_spec


    // $ANTLR start rulebase_type_spec
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:575:1: rulebase_type_spec : ( ( rule__Base_type_spec__Alternatives ) ) ;
    public final void rulebase_type_spec() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:579:2: ( ( ( rule__Base_type_spec__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:580:1: ( ( rule__Base_type_spec__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:580:1: ( ( rule__Base_type_spec__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:581:1: ( rule__Base_type_spec__Alternatives )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getBase_type_specAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:582:1: ( rule__Base_type_spec__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:582:2: rule__Base_type_spec__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Base_type_spec__Alternatives_in_rulebase_type_spec1180);
            rule__Base_type_spec__Alternatives();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getBase_type_specAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rulebase_type_spec


    // $ANTLR start entryRuletemplate_type_spec
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:594:1: entryRuletemplate_type_spec : ruletemplate_type_spec EOF ;
    public final void entryRuletemplate_type_spec() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:595:1: ( ruletemplate_type_spec EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:596:1: ruletemplate_type_spec EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getTemplate_type_specRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruletemplate_type_spec_in_entryRuletemplate_type_spec1207);
            ruletemplate_type_spec();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getTemplate_type_specRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuletemplate_type_spec1214); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuletemplate_type_spec


    // $ANTLR start ruletemplate_type_spec
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:603:1: ruletemplate_type_spec : ( ( rule__Template_type_spec__Alternatives ) ) ;
    public final void ruletemplate_type_spec() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:607:2: ( ( ( rule__Template_type_spec__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:608:1: ( ( rule__Template_type_spec__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:608:1: ( ( rule__Template_type_spec__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:609:1: ( rule__Template_type_spec__Alternatives )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getTemplate_type_specAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:610:1: ( rule__Template_type_spec__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:610:2: rule__Template_type_spec__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Template_type_spec__Alternatives_in_ruletemplate_type_spec1240);
            rule__Template_type_spec__Alternatives();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getTemplate_type_specAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruletemplate_type_spec


    // $ANTLR start entryRulestruct_type
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:624:1: entryRulestruct_type : rulestruct_type EOF ;
    public final void entryRulestruct_type() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:625:1: ( rulestruct_type EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:626:1: rulestruct_type EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getStruct_typeRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulestruct_type_in_entryRulestruct_type1269);
            rulestruct_type();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getStruct_typeRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulestruct_type1276); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRulestruct_type


    // $ANTLR start rulestruct_type
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:633:1: rulestruct_type : ( ( rule__Struct_type__Group__0 ) ) ;
    public final void rulestruct_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:637:2: ( ( ( rule__Struct_type__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:638:1: ( ( rule__Struct_type__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:638:1: ( ( rule__Struct_type__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:639:1: ( rule__Struct_type__Group__0 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getStruct_typeAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:640:1: ( rule__Struct_type__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:640:2: rule__Struct_type__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Struct_type__Group__0_in_rulestruct_type1302);
            rule__Struct_type__Group__0();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getStruct_typeAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rulestruct_type


    // $ANTLR start entryRulemember
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:652:1: entryRulemember : rulemember EOF ;
    public final void entryRulemember() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:653:1: ( rulemember EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:654:1: rulemember EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getMemberRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulemember_in_entryRulemember1329);
            rulemember();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getMemberRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulemember1336); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRulemember


    // $ANTLR start rulemember
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:661:1: rulemember : ( ( rule__Member__Alternatives ) ) ;
    public final void rulemember() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:665:2: ( ( ( rule__Member__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:666:1: ( ( rule__Member__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:666:1: ( ( rule__Member__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:667:1: ( rule__Member__Alternatives )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getMemberAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:668:1: ( rule__Member__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:668:2: rule__Member__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Member__Alternatives_in_rulemember1362);
            rule__Member__Alternatives();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getMemberAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rulemember


    // $ANTLR start entryRuleunion_type
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:680:1: entryRuleunion_type : ruleunion_type EOF ;
    public final void entryRuleunion_type() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:681:1: ( ruleunion_type EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:682:1: ruleunion_type EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getUnion_typeRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleunion_type_in_entryRuleunion_type1389);
            ruleunion_type();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getUnion_typeRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleunion_type1396); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleunion_type


    // $ANTLR start ruleunion_type
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:689:1: ruleunion_type : ( ( rule__Union_type__Group__0 ) ) ;
    public final void ruleunion_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:693:2: ( ( ( rule__Union_type__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:694:1: ( ( rule__Union_type__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:694:1: ( ( rule__Union_type__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:695:1: ( rule__Union_type__Group__0 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getUnion_typeAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:696:1: ( rule__Union_type__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:696:2: rule__Union_type__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Union_type__Group__0_in_ruleunion_type1422);
            rule__Union_type__Group__0();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getUnion_typeAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleunion_type


    // $ANTLR start entryRuleswitch_type_spec_cont
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:708:1: entryRuleswitch_type_spec_cont : ruleswitch_type_spec_cont EOF ;
    public final void entryRuleswitch_type_spec_cont() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:709:1: ( ruleswitch_type_spec_cont EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:710:1: ruleswitch_type_spec_cont EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getSwitch_type_spec_contRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleswitch_type_spec_cont_in_entryRuleswitch_type_spec_cont1449);
            ruleswitch_type_spec_cont();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getSwitch_type_spec_contRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleswitch_type_spec_cont1456); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleswitch_type_spec_cont


    // $ANTLR start ruleswitch_type_spec_cont
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:717:1: ruleswitch_type_spec_cont : ( ( rule__Switch_type_spec_cont__Alternatives ) ) ;
    public final void ruleswitch_type_spec_cont() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:721:2: ( ( ( rule__Switch_type_spec_cont__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:722:1: ( ( rule__Switch_type_spec_cont__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:722:1: ( ( rule__Switch_type_spec_cont__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:723:1: ( rule__Switch_type_spec_cont__Alternatives )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getSwitch_type_spec_contAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:724:1: ( rule__Switch_type_spec_cont__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:724:2: rule__Switch_type_spec_cont__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Switch_type_spec_cont__Alternatives_in_ruleswitch_type_spec_cont1482);
            rule__Switch_type_spec_cont__Alternatives();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getSwitch_type_spec_contAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleswitch_type_spec_cont


    // $ANTLR start entryRulecase_stmt
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:736:1: entryRulecase_stmt : rulecase_stmt EOF ;
    public final void entryRulecase_stmt() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:737:1: ( rulecase_stmt EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:738:1: rulecase_stmt EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getCase_stmtRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulecase_stmt_in_entryRulecase_stmt1509);
            rulecase_stmt();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getCase_stmtRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulecase_stmt1516); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRulecase_stmt


    // $ANTLR start rulecase_stmt
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:745:1: rulecase_stmt : ( ( rule__Case_stmt__Alternatives ) ) ;
    public final void rulecase_stmt() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:749:2: ( ( ( rule__Case_stmt__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:750:1: ( ( rule__Case_stmt__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:750:1: ( ( rule__Case_stmt__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:751:1: ( rule__Case_stmt__Alternatives )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:752:1: ( rule__Case_stmt__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:752:2: rule__Case_stmt__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Alternatives_in_rulecase_stmt1542);
            rule__Case_stmt__Alternatives();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rulecase_stmt


    // $ANTLR start entryRuleenum_type
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:764:1: entryRuleenum_type : ruleenum_type EOF ;
    public final void entryRuleenum_type() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:765:1: ( ruleenum_type EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:766:1: ruleenum_type EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getEnum_typeRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleenum_type_in_entryRuleenum_type1569);
            ruleenum_type();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getEnum_typeRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleenum_type1576); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleenum_type


    // $ANTLR start ruleenum_type
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:773:1: ruleenum_type : ( ( rule__Enum_type__Group__0 ) ) ;
    public final void ruleenum_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:777:2: ( ( ( rule__Enum_type__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:778:1: ( ( rule__Enum_type__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:778:1: ( ( rule__Enum_type__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:779:1: ( rule__Enum_type__Group__0 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getEnum_typeAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:780:1: ( rule__Enum_type__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:780:2: rule__Enum_type__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Enum_type__Group__0_in_ruleenum_type1602);
            rule__Enum_type__Group__0();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getEnum_typeAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleenum_type


    // $ANTLR start entryRuleenum_member
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:792:1: entryRuleenum_member : ruleenum_member EOF ;
    public final void entryRuleenum_member() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:793:1: ( ruleenum_member EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:794:1: ruleenum_member EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getEnum_memberRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleenum_member_in_entryRuleenum_member1629);
            ruleenum_member();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getEnum_memberRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleenum_member1636); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleenum_member


    // $ANTLR start ruleenum_member
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:801:1: ruleenum_member : ( ( rule__Enum_member__IdentifierAssignment ) ) ;
    public final void ruleenum_member() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:805:2: ( ( ( rule__Enum_member__IdentifierAssignment ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:806:1: ( ( rule__Enum_member__IdentifierAssignment ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:806:1: ( ( rule__Enum_member__IdentifierAssignment ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:807:1: ( rule__Enum_member__IdentifierAssignment )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getEnum_memberAccess().getIdentifierAssignment()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:808:1: ( rule__Enum_member__IdentifierAssignment )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:808:2: rule__Enum_member__IdentifierAssignment
            {
            pushFollow(FollowSets000.FOLLOW_rule__Enum_member__IdentifierAssignment_in_ruleenum_member1662);
            rule__Enum_member__IdentifierAssignment();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getEnum_memberAccess().getIdentifierAssignment()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleenum_member


    // $ANTLR start entryRuleconstr_forward_decl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:820:1: entryRuleconstr_forward_decl : ruleconstr_forward_decl EOF ;
    public final void entryRuleconstr_forward_decl() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:821:1: ( ruleconstr_forward_decl EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:822:1: ruleconstr_forward_decl EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getConstr_forward_declRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleconstr_forward_decl_in_entryRuleconstr_forward_decl1689);
            ruleconstr_forward_decl();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getConstr_forward_declRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleconstr_forward_decl1696); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleconstr_forward_decl


    // $ANTLR start ruleconstr_forward_decl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:829:1: ruleconstr_forward_decl : ( ( rule__Constr_forward_decl__Alternatives ) ) ;
    public final void ruleconstr_forward_decl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:833:2: ( ( ( rule__Constr_forward_decl__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:834:1: ( ( rule__Constr_forward_decl__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:834:1: ( ( rule__Constr_forward_decl__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:835:1: ( rule__Constr_forward_decl__Alternatives )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getConstr_forward_declAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:836:1: ( rule__Constr_forward_decl__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:836:2: rule__Constr_forward_decl__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Constr_forward_decl__Alternatives_in_ruleconstr_forward_decl1722);
            rule__Constr_forward_decl__Alternatives();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getConstr_forward_declAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleconstr_forward_decl


    // $ANTLR start entryRuleconst_decl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:848:1: entryRuleconst_decl : ruleconst_decl EOF ;
    public final void entryRuleconst_decl() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:849:1: ( ruleconst_decl EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:850:1: ruleconst_decl EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getConst_declRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleconst_decl_in_entryRuleconst_decl1749);
            ruleconst_decl();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getConst_declRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleconst_decl1756); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleconst_decl


    // $ANTLR start ruleconst_decl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:857:1: ruleconst_decl : ( ( rule__Const_decl__Group__0 ) ) ;
    public final void ruleconst_decl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:861:2: ( ( ( rule__Const_decl__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:862:1: ( ( rule__Const_decl__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:862:1: ( ( rule__Const_decl__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:863:1: ( rule__Const_decl__Group__0 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getConst_declAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:864:1: ( rule__Const_decl__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:864:2: rule__Const_decl__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Const_decl__Group__0_in_ruleconst_decl1782);
            rule__Const_decl__Group__0();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getConst_declAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleconst_decl


    // $ANTLR start entryRuleconst_type
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:876:1: entryRuleconst_type : ruleconst_type EOF ;
    public final void entryRuleconst_type() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:877:1: ( ruleconst_type EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:878:1: ruleconst_type EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getConst_typeRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleconst_type_in_entryRuleconst_type1809);
            ruleconst_type();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getConst_typeRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleconst_type1816); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleconst_type


    // $ANTLR start ruleconst_type
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:885:1: ruleconst_type : ( ( rule__Const_type__Alternatives ) ) ;
    public final void ruleconst_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:889:2: ( ( ( rule__Const_type__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:890:1: ( ( rule__Const_type__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:890:1: ( ( rule__Const_type__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:891:1: ( rule__Const_type__Alternatives )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getConst_typeAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:892:1: ( rule__Const_type__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:892:2: rule__Const_type__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Const_type__Alternatives_in_ruleconst_type1842);
            rule__Const_type__Alternatives();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getConst_typeAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleconst_type


    // $ANTLR start entryRuleprimitive_def
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:904:1: entryRuleprimitive_def : ruleprimitive_def EOF ;
    public final void entryRuleprimitive_def() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:905:1: ( ruleprimitive_def EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:906:1: ruleprimitive_def EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getPrimitive_defRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleprimitive_def_in_entryRuleprimitive_def1869);
            ruleprimitive_def();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getPrimitive_defRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleprimitive_def1876); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleprimitive_def


    // $ANTLR start ruleprimitive_def
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:913:1: ruleprimitive_def : ( ( rule__Primitive_def__Alternatives ) ) ;
    public final void ruleprimitive_def() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:917:2: ( ( ( rule__Primitive_def__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:918:1: ( ( rule__Primitive_def__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:918:1: ( ( rule__Primitive_def__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:919:1: ( rule__Primitive_def__Alternatives )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getPrimitive_defAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:920:1: ( rule__Primitive_def__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:920:2: rule__Primitive_def__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Primitive_def__Alternatives_in_ruleprimitive_def1902);
            rule__Primitive_def__Alternatives();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getPrimitive_defAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleprimitive_def


    // $ANTLR start entryRulesequence_type
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:932:1: entryRulesequence_type : rulesequence_type EOF ;
    public final void entryRulesequence_type() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:933:1: ( rulesequence_type EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:934:1: rulesequence_type EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getSequence_typeRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulesequence_type_in_entryRulesequence_type1929);
            rulesequence_type();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getSequence_typeRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulesequence_type1936); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRulesequence_type


    // $ANTLR start rulesequence_type
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:941:1: rulesequence_type : ( ( rule__Sequence_type__Group__0 ) ) ;
    public final void rulesequence_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:945:2: ( ( ( rule__Sequence_type__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:946:1: ( ( rule__Sequence_type__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:946:1: ( ( rule__Sequence_type__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:947:1: ( rule__Sequence_type__Group__0 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getSequence_typeAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:948:1: ( rule__Sequence_type__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:948:2: rule__Sequence_type__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Sequence_type__Group__0_in_rulesequence_type1962);
            rule__Sequence_type__Group__0();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getSequence_typeAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rulesequence_type


    // $ANTLR start entryRulestringdef_type
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:960:1: entryRulestringdef_type : rulestringdef_type EOF ;
    public final void entryRulestringdef_type() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:961:1: ( rulestringdef_type EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:962:1: rulestringdef_type EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getStringdef_typeRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulestringdef_type_in_entryRulestringdef_type1989);
            rulestringdef_type();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getStringdef_typeRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulestringdef_type1996); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRulestringdef_type


    // $ANTLR start rulestringdef_type
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:969:1: rulestringdef_type : ( ( rule__Stringdef_type__Group__0 ) ) ;
    public final void rulestringdef_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:973:2: ( ( ( rule__Stringdef_type__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:974:1: ( ( rule__Stringdef_type__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:974:1: ( ( rule__Stringdef_type__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:975:1: ( rule__Stringdef_type__Group__0 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getStringdef_typeAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:976:1: ( rule__Stringdef_type__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:976:2: rule__Stringdef_type__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Stringdef_type__Group__0_in_rulestringdef_type2022);
            rule__Stringdef_type__Group__0();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getStringdef_typeAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rulestringdef_type


    // $ANTLR start entryRulewide_stringdef_type
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:988:1: entryRulewide_stringdef_type : rulewide_stringdef_type EOF ;
    public final void entryRulewide_stringdef_type() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:989:1: ( rulewide_stringdef_type EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:990:1: rulewide_stringdef_type EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getWide_stringdef_typeRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulewide_stringdef_type_in_entryRulewide_stringdef_type2049);
            rulewide_stringdef_type();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getWide_stringdef_typeRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulewide_stringdef_type2056); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRulewide_stringdef_type


    // $ANTLR start rulewide_stringdef_type
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:997:1: rulewide_stringdef_type : ( ( rule__Wide_stringdef_type__Group__0 ) ) ;
    public final void rulewide_stringdef_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1001:2: ( ( ( rule__Wide_stringdef_type__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1002:1: ( ( rule__Wide_stringdef_type__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1002:1: ( ( rule__Wide_stringdef_type__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1003:1: ( rule__Wide_stringdef_type__Group__0 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getWide_stringdef_typeAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1004:1: ( rule__Wide_stringdef_type__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1004:2: rule__Wide_stringdef_type__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Wide_stringdef_type__Group__0_in_rulewide_stringdef_type2082);
            rule__Wide_stringdef_type__Group__0();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getWide_stringdef_typeAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rulewide_stringdef_type


    // $ANTLR start entryRulefixed_pt_type
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1016:1: entryRulefixed_pt_type : rulefixed_pt_type EOF ;
    public final void entryRulefixed_pt_type() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1017:1: ( rulefixed_pt_type EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1018:1: rulefixed_pt_type EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getFixed_pt_typeRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulefixed_pt_type_in_entryRulefixed_pt_type2109);
            rulefixed_pt_type();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getFixed_pt_typeRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulefixed_pt_type2116); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRulefixed_pt_type


    // $ANTLR start rulefixed_pt_type
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1025:1: rulefixed_pt_type : ( ( rule__Fixed_pt_type__Group__0 ) ) ;
    public final void rulefixed_pt_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1029:2: ( ( ( rule__Fixed_pt_type__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1030:1: ( ( rule__Fixed_pt_type__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1030:1: ( ( rule__Fixed_pt_type__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1031:1: ( rule__Fixed_pt_type__Group__0 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getFixed_pt_typeAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1032:1: ( rule__Fixed_pt_type__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1032:2: rule__Fixed_pt_type__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Fixed_pt_type__Group__0_in_rulefixed_pt_type2142);
            rule__Fixed_pt_type__Group__0();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getFixed_pt_typeAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rulefixed_pt_type


    // $ANTLR start entryRulefloating_pt_type
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1044:1: entryRulefloating_pt_type : rulefloating_pt_type EOF ;
    public final void entryRulefloating_pt_type() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1045:1: ( rulefloating_pt_type EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1046:1: rulefloating_pt_type EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getFloating_pt_typeRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulefloating_pt_type_in_entryRulefloating_pt_type2169);
            rulefloating_pt_type();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getFloating_pt_typeRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulefloating_pt_type2176); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRulefloating_pt_type


    // $ANTLR start rulefloating_pt_type
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1053:1: rulefloating_pt_type : ( ( rule__Floating_pt_type__Alternatives ) ) ;
    public final void rulefloating_pt_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1057:2: ( ( ( rule__Floating_pt_type__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1058:1: ( ( rule__Floating_pt_type__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1058:1: ( ( rule__Floating_pt_type__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1059:1: ( rule__Floating_pt_type__Alternatives )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getFloating_pt_typeAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1060:1: ( rule__Floating_pt_type__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1060:2: rule__Floating_pt_type__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Floating_pt_type__Alternatives_in_rulefloating_pt_type2202);
            rule__Floating_pt_type__Alternatives();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getFloating_pt_typeAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rulefloating_pt_type


    // $ANTLR start entryRulelongdouble_type
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1072:1: entryRulelongdouble_type : rulelongdouble_type EOF ;
    public final void entryRulelongdouble_type() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1073:1: ( rulelongdouble_type EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1074:1: rulelongdouble_type EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getLongdouble_typeRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulelongdouble_type_in_entryRulelongdouble_type2229);
            rulelongdouble_type();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getLongdouble_typeRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulelongdouble_type2236); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRulelongdouble_type


    // $ANTLR start rulelongdouble_type
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1081:1: rulelongdouble_type : ( ( rule__Longdouble_type__Group__0 ) ) ;
    public final void rulelongdouble_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1085:2: ( ( ( rule__Longdouble_type__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1086:1: ( ( rule__Longdouble_type__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1086:1: ( ( rule__Longdouble_type__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1087:1: ( rule__Longdouble_type__Group__0 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getLongdouble_typeAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1088:1: ( rule__Longdouble_type__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1088:2: rule__Longdouble_type__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Longdouble_type__Group__0_in_rulelongdouble_type2262);
            rule__Longdouble_type__Group__0();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getLongdouble_typeAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rulelongdouble_type


    // $ANTLR start entryRuleinteger_type
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1100:1: entryRuleinteger_type : ruleinteger_type EOF ;
    public final void entryRuleinteger_type() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1101:1: ( ruleinteger_type EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1102:1: ruleinteger_type EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getInteger_typeRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleinteger_type_in_entryRuleinteger_type2289);
            ruleinteger_type();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getInteger_typeRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleinteger_type2296); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleinteger_type


    // $ANTLR start ruleinteger_type
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1109:1: ruleinteger_type : ( ( rule__Integer_type__Alternatives ) ) ;
    public final void ruleinteger_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1113:2: ( ( ( rule__Integer_type__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1114:1: ( ( rule__Integer_type__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1114:1: ( ( rule__Integer_type__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1115:1: ( rule__Integer_type__Alternatives )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getInteger_typeAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1116:1: ( rule__Integer_type__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1116:2: rule__Integer_type__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Integer_type__Alternatives_in_ruleinteger_type2322);
            rule__Integer_type__Alternatives();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getInteger_typeAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleinteger_type


    // $ANTLR start entryRulelonglong_type
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1128:1: entryRulelonglong_type : rulelonglong_type EOF ;
    public final void entryRulelonglong_type() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1129:1: ( rulelonglong_type EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1130:1: rulelonglong_type EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getLonglong_typeRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulelonglong_type_in_entryRulelonglong_type2349);
            rulelonglong_type();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getLonglong_typeRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulelonglong_type2356); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRulelonglong_type


    // $ANTLR start rulelonglong_type
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1137:1: rulelonglong_type : ( ( rule__Longlong_type__Group__0 ) ) ;
    public final void rulelonglong_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1141:2: ( ( ( rule__Longlong_type__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1142:1: ( ( rule__Longlong_type__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1142:1: ( ( rule__Longlong_type__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1143:1: ( rule__Longlong_type__Group__0 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getLonglong_typeAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1144:1: ( rule__Longlong_type__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1144:2: rule__Longlong_type__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Longlong_type__Group__0_in_rulelonglong_type2382);
            rule__Longlong_type__Group__0();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getLonglong_typeAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rulelonglong_type


    // $ANTLR start entryRuleushort_type
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1156:1: entryRuleushort_type : ruleushort_type EOF ;
    public final void entryRuleushort_type() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1157:1: ( ruleushort_type EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1158:1: ruleushort_type EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getUshort_typeRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleushort_type_in_entryRuleushort_type2409);
            ruleushort_type();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getUshort_typeRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleushort_type2416); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleushort_type


    // $ANTLR start ruleushort_type
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1165:1: ruleushort_type : ( ( rule__Ushort_type__Group__0 ) ) ;
    public final void ruleushort_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1169:2: ( ( ( rule__Ushort_type__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1170:1: ( ( rule__Ushort_type__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1170:1: ( ( rule__Ushort_type__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1171:1: ( rule__Ushort_type__Group__0 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getUshort_typeAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1172:1: ( rule__Ushort_type__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1172:2: rule__Ushort_type__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Ushort_type__Group__0_in_ruleushort_type2442);
            rule__Ushort_type__Group__0();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getUshort_typeAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleushort_type


    // $ANTLR start entryRuleulong_type
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1184:1: entryRuleulong_type : ruleulong_type EOF ;
    public final void entryRuleulong_type() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1185:1: ( ruleulong_type EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1186:1: ruleulong_type EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getUlong_typeRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleulong_type_in_entryRuleulong_type2469);
            ruleulong_type();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getUlong_typeRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleulong_type2476); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleulong_type


    // $ANTLR start ruleulong_type
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1193:1: ruleulong_type : ( ( rule__Ulong_type__Group__0 ) ) ;
    public final void ruleulong_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1197:2: ( ( ( rule__Ulong_type__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1198:1: ( ( rule__Ulong_type__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1198:1: ( ( rule__Ulong_type__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1199:1: ( rule__Ulong_type__Group__0 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getUlong_typeAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1200:1: ( rule__Ulong_type__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1200:2: rule__Ulong_type__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Ulong_type__Group__0_in_ruleulong_type2502);
            rule__Ulong_type__Group__0();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getUlong_typeAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleulong_type


    // $ANTLR start entryRuleulonglong_type
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1212:1: entryRuleulonglong_type : ruleulonglong_type EOF ;
    public final void entryRuleulonglong_type() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1213:1: ( ruleulonglong_type EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1214:1: ruleulonglong_type EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getUlonglong_typeRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleulonglong_type_in_entryRuleulonglong_type2529);
            ruleulonglong_type();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getUlonglong_typeRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleulonglong_type2536); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleulonglong_type


    // $ANTLR start ruleulonglong_type
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1221:1: ruleulonglong_type : ( ( rule__Ulonglong_type__Group__0 ) ) ;
    public final void ruleulonglong_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1225:2: ( ( ( rule__Ulonglong_type__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1226:1: ( ( rule__Ulonglong_type__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1226:1: ( ( rule__Ulonglong_type__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1227:1: ( rule__Ulonglong_type__Group__0 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getUlonglong_typeAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1228:1: ( rule__Ulonglong_type__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1228:2: rule__Ulonglong_type__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Ulonglong_type__Group__0_in_ruleulonglong_type2562);
            rule__Ulonglong_type__Group__0();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getUlonglong_typeAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleulonglong_type


    // $ANTLR start entryRulecharstr_type
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1240:1: entryRulecharstr_type : rulecharstr_type EOF ;
    public final void entryRulecharstr_type() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1241:1: ( rulecharstr_type EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1242:1: rulecharstr_type EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getCharstr_typeRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulecharstr_type_in_entryRulecharstr_type2589);
            rulecharstr_type();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getCharstr_typeRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulecharstr_type2596); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRulecharstr_type


    // $ANTLR start rulecharstr_type
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1249:1: rulecharstr_type : ( ( rule__Charstr_type__Alternatives ) ) ;
    public final void rulecharstr_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1253:2: ( ( ( rule__Charstr_type__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1254:1: ( ( rule__Charstr_type__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1254:1: ( ( rule__Charstr_type__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1255:1: ( rule__Charstr_type__Alternatives )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getCharstr_typeAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1256:1: ( rule__Charstr_type__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1256:2: rule__Charstr_type__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Charstr_type__Alternatives_in_rulecharstr_type2622);
            rule__Charstr_type__Alternatives();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getCharstr_typeAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rulecharstr_type


    // $ANTLR start entryRuleother_type
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1268:1: entryRuleother_type : ruleother_type EOF ;
    public final void entryRuleother_type() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1269:1: ( ruleother_type EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1270:1: ruleother_type EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOther_typeRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleother_type_in_entryRuleother_type2649);
            ruleother_type();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getOther_typeRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleother_type2656); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleother_type


    // $ANTLR start ruleother_type
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1277:1: ruleother_type : ( ( rule__Other_type__Alternatives ) ) ;
    public final void ruleother_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1281:2: ( ( ( rule__Other_type__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1282:1: ( ( rule__Other_type__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1282:1: ( ( rule__Other_type__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1283:1: ( rule__Other_type__Alternatives )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOther_typeAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1284:1: ( rule__Other_type__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1284:2: rule__Other_type__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Other_type__Alternatives_in_ruleother_type2682);
            rule__Other_type__Alternatives();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getOther_typeAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleother_type


    // $ANTLR start entryRulefixed_pt_const_type
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1296:1: entryRulefixed_pt_const_type : rulefixed_pt_const_type EOF ;
    public final void entryRulefixed_pt_const_type() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1297:1: ( rulefixed_pt_const_type EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1298:1: rulefixed_pt_const_type EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getFixed_pt_const_typeRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulefixed_pt_const_type_in_entryRulefixed_pt_const_type2709);
            rulefixed_pt_const_type();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getFixed_pt_const_typeRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulefixed_pt_const_type2716); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRulefixed_pt_const_type


    // $ANTLR start rulefixed_pt_const_type
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1305:1: rulefixed_pt_const_type : ( ( rule__Fixed_pt_const_type__Group__0 ) ) ;
    public final void rulefixed_pt_const_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1309:2: ( ( ( rule__Fixed_pt_const_type__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1310:1: ( ( rule__Fixed_pt_const_type__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1310:1: ( ( rule__Fixed_pt_const_type__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1311:1: ( rule__Fixed_pt_const_type__Group__0 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getFixed_pt_const_typeAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1312:1: ( rule__Fixed_pt_const_type__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1312:2: rule__Fixed_pt_const_type__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Fixed_pt_const_type__Group__0_in_rulefixed_pt_const_type2742);
            rule__Fixed_pt_const_type__Group__0();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getFixed_pt_const_typeAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rulefixed_pt_const_type


    // $ANTLR start entryRuleconst_exp
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1324:1: entryRuleconst_exp : ruleconst_exp EOF ;
    public final void entryRuleconst_exp() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1325:1: ( ruleconst_exp EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1326:1: ruleconst_exp EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getConst_expRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleconst_exp_in_entryRuleconst_exp2769);
            ruleconst_exp();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getConst_expRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleconst_exp2776); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleconst_exp


    // $ANTLR start ruleconst_exp
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1333:1: ruleconst_exp : ( ruleor_expr ) ;
    public final void ruleconst_exp() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1337:2: ( ( ruleor_expr ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1338:1: ( ruleor_expr )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1338:1: ( ruleor_expr )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1339:1: ruleor_expr
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getConst_expAccess().getOr_exprParserRuleCall()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleor_expr_in_ruleconst_exp2802);
            ruleor_expr();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getConst_expAccess().getOr_exprParserRuleCall()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleconst_exp


    // $ANTLR start entryRuleor_expr
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1352:1: entryRuleor_expr : ruleor_expr EOF ;
    public final void entryRuleor_expr() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1353:1: ( ruleor_expr EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1354:1: ruleor_expr EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOr_exprRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleor_expr_in_entryRuleor_expr2828);
            ruleor_expr();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getOr_exprRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleor_expr2835); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleor_expr


    // $ANTLR start ruleor_expr
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1361:1: ruleor_expr : ( ( rule__Or_expr__Group__0 ) ) ;
    public final void ruleor_expr() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1365:2: ( ( ( rule__Or_expr__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1366:1: ( ( rule__Or_expr__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1366:1: ( ( rule__Or_expr__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1367:1: ( rule__Or_expr__Group__0 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOr_exprAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1368:1: ( rule__Or_expr__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1368:2: rule__Or_expr__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Or_expr__Group__0_in_ruleor_expr2861);
            rule__Or_expr__Group__0();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getOr_exprAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleor_expr


    // $ANTLR start entryRulexor_expr
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1380:1: entryRulexor_expr : rulexor_expr EOF ;
    public final void entryRulexor_expr() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1381:1: ( rulexor_expr EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1382:1: rulexor_expr EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getXor_exprRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulexor_expr_in_entryRulexor_expr2888);
            rulexor_expr();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getXor_exprRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulexor_expr2895); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRulexor_expr


    // $ANTLR start rulexor_expr
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1389:1: rulexor_expr : ( ( rule__Xor_expr__Group__0 ) ) ;
    public final void rulexor_expr() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1393:2: ( ( ( rule__Xor_expr__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1394:1: ( ( rule__Xor_expr__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1394:1: ( ( rule__Xor_expr__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1395:1: ( rule__Xor_expr__Group__0 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getXor_exprAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1396:1: ( rule__Xor_expr__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1396:2: rule__Xor_expr__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Xor_expr__Group__0_in_rulexor_expr2921);
            rule__Xor_expr__Group__0();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getXor_exprAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rulexor_expr


    // $ANTLR start entryRuleand_expr
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1408:1: entryRuleand_expr : ruleand_expr EOF ;
    public final void entryRuleand_expr() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1409:1: ( ruleand_expr EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1410:1: ruleand_expr EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAnd_exprRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleand_expr_in_entryRuleand_expr2948);
            ruleand_expr();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getAnd_exprRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleand_expr2955); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleand_expr


    // $ANTLR start ruleand_expr
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1417:1: ruleand_expr : ( ( rule__And_expr__Group__0 ) ) ;
    public final void ruleand_expr() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1421:2: ( ( ( rule__And_expr__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1422:1: ( ( rule__And_expr__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1422:1: ( ( rule__And_expr__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1423:1: ( rule__And_expr__Group__0 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAnd_exprAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1424:1: ( rule__And_expr__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1424:2: rule__And_expr__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__And_expr__Group__0_in_ruleand_expr2981);
            rule__And_expr__Group__0();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getAnd_exprAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleand_expr


    // $ANTLR start entryRuleshift_expr
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1436:1: entryRuleshift_expr : ruleshift_expr EOF ;
    public final void entryRuleshift_expr() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1437:1: ( ruleshift_expr EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1438:1: ruleshift_expr EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getShift_exprRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleshift_expr_in_entryRuleshift_expr3008);
            ruleshift_expr();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getShift_exprRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleshift_expr3015); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleshift_expr


    // $ANTLR start ruleshift_expr
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1445:1: ruleshift_expr : ( ( rule__Shift_expr__Group__0 ) ) ;
    public final void ruleshift_expr() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1449:2: ( ( ( rule__Shift_expr__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1450:1: ( ( rule__Shift_expr__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1450:1: ( ( rule__Shift_expr__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1451:1: ( rule__Shift_expr__Group__0 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getShift_exprAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1452:1: ( rule__Shift_expr__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1452:2: rule__Shift_expr__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Shift_expr__Group__0_in_ruleshift_expr3041);
            rule__Shift_expr__Group__0();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getShift_exprAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleshift_expr


    // $ANTLR start entryRuleadd_expr
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1464:1: entryRuleadd_expr : ruleadd_expr EOF ;
    public final void entryRuleadd_expr() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1465:1: ( ruleadd_expr EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1466:1: ruleadd_expr EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAdd_exprRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleadd_expr_in_entryRuleadd_expr3068);
            ruleadd_expr();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getAdd_exprRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleadd_expr3075); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleadd_expr


    // $ANTLR start ruleadd_expr
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1473:1: ruleadd_expr : ( ( rule__Add_expr__Group__0 ) ) ;
    public final void ruleadd_expr() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1477:2: ( ( ( rule__Add_expr__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1478:1: ( ( rule__Add_expr__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1478:1: ( ( rule__Add_expr__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1479:1: ( rule__Add_expr__Group__0 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAdd_exprAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1480:1: ( rule__Add_expr__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1480:2: rule__Add_expr__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Add_expr__Group__0_in_ruleadd_expr3101);
            rule__Add_expr__Group__0();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getAdd_exprAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleadd_expr


    // $ANTLR start entryRulemult_expr
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1492:1: entryRulemult_expr : rulemult_expr EOF ;
    public final void entryRulemult_expr() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1493:1: ( rulemult_expr EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1494:1: rulemult_expr EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getMult_exprRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulemult_expr_in_entryRulemult_expr3128);
            rulemult_expr();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getMult_exprRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulemult_expr3135); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRulemult_expr


    // $ANTLR start rulemult_expr
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1501:1: rulemult_expr : ( ( rule__Mult_expr__Group__0 ) ) ;
    public final void rulemult_expr() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1505:2: ( ( ( rule__Mult_expr__Group__0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1506:1: ( ( rule__Mult_expr__Group__0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1506:1: ( ( rule__Mult_expr__Group__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1507:1: ( rule__Mult_expr__Group__0 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getMult_exprAccess().getGroup()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1508:1: ( rule__Mult_expr__Group__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1508:2: rule__Mult_expr__Group__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Mult_expr__Group__0_in_rulemult_expr3161);
            rule__Mult_expr__Group__0();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getMult_exprAccess().getGroup()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rulemult_expr


    // $ANTLR start entryRuleunary_expr
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1520:1: entryRuleunary_expr : ruleunary_expr EOF ;
    public final void entryRuleunary_expr() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1521:1: ( ruleunary_expr EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1522:1: ruleunary_expr EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getUnary_exprRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleunary_expr_in_entryRuleunary_expr3188);
            ruleunary_expr();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getUnary_exprRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleunary_expr3195); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleunary_expr


    // $ANTLR start ruleunary_expr
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1529:1: ruleunary_expr : ( ( rule__Unary_expr__Alternatives ) ) ;
    public final void ruleunary_expr() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1533:2: ( ( ( rule__Unary_expr__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1534:1: ( ( rule__Unary_expr__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1534:1: ( ( rule__Unary_expr__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1535:1: ( rule__Unary_expr__Alternatives )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getUnary_exprAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1536:1: ( rule__Unary_expr__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1536:2: rule__Unary_expr__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Unary_expr__Alternatives_in_ruleunary_expr3221);
            rule__Unary_expr__Alternatives();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getUnary_exprAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleunary_expr


    // $ANTLR start entryRuleunary_operator
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1548:1: entryRuleunary_operator : ruleunary_operator EOF ;
    public final void entryRuleunary_operator() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1549:1: ( ruleunary_operator EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1550:1: ruleunary_operator EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getUnary_operatorRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleunary_operator_in_entryRuleunary_operator3248);
            ruleunary_operator();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getUnary_operatorRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleunary_operator3255); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleunary_operator


    // $ANTLR start ruleunary_operator
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1557:1: ruleunary_operator : ( ( rule__Unary_operator__Alternatives ) ) ;
    public final void ruleunary_operator() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1561:2: ( ( ( rule__Unary_operator__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1562:1: ( ( rule__Unary_operator__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1562:1: ( ( rule__Unary_operator__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1563:1: ( rule__Unary_operator__Alternatives )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getUnary_operatorAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1564:1: ( rule__Unary_operator__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1564:2: rule__Unary_operator__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Unary_operator__Alternatives_in_ruleunary_operator3281);
            rule__Unary_operator__Alternatives();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getUnary_operatorAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleunary_operator


    // $ANTLR start entryRuleprimary_expr
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1576:1: entryRuleprimary_expr : ruleprimary_expr EOF ;
    public final void entryRuleprimary_expr() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1577:1: ( ruleprimary_expr EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1578:1: ruleprimary_expr EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getPrimary_exprRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleprimary_expr_in_entryRuleprimary_expr3308);
            ruleprimary_expr();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getPrimary_exprRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleprimary_expr3315); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleprimary_expr


    // $ANTLR start ruleprimary_expr
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1585:1: ruleprimary_expr : ( ( rule__Primary_expr__Alternatives ) ) ;
    public final void ruleprimary_expr() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1589:2: ( ( ( rule__Primary_expr__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1590:1: ( ( rule__Primary_expr__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1590:1: ( ( rule__Primary_expr__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1591:1: ( rule__Primary_expr__Alternatives )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getPrimary_exprAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1592:1: ( rule__Primary_expr__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1592:2: rule__Primary_expr__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Primary_expr__Alternatives_in_ruleprimary_expr3341);
            rule__Primary_expr__Alternatives();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getPrimary_exprAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleprimary_expr


    // $ANTLR start entryRuleconstantDefRef
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1604:1: entryRuleconstantDefRef : ruleconstantDefRef EOF ;
    public final void entryRuleconstantDefRef() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1605:1: ( ruleconstantDefRef EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1606:1: ruleconstantDefRef EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getConstantDefRefRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleconstantDefRef_in_entryRuleconstantDefRef3368);
            ruleconstantDefRef();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getConstantDefRefRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleconstantDefRef3375); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleconstantDefRef


    // $ANTLR start ruleconstantDefRef
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1613:1: ruleconstantDefRef : ( ( rule__ConstantDefRef__ConstantAssignment ) ) ;
    public final void ruleconstantDefRef() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1617:2: ( ( ( rule__ConstantDefRef__ConstantAssignment ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1618:1: ( ( rule__ConstantDefRef__ConstantAssignment ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1618:1: ( ( rule__ConstantDefRef__ConstantAssignment ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1619:1: ( rule__ConstantDefRef__ConstantAssignment )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getConstantDefRefAccess().getConstantAssignment()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1620:1: ( rule__ConstantDefRef__ConstantAssignment )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1620:2: rule__ConstantDefRef__ConstantAssignment
            {
            pushFollow(FollowSets000.FOLLOW_rule__ConstantDefRef__ConstantAssignment_in_ruleconstantDefRef3401);
            rule__ConstantDefRef__ConstantAssignment();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getConstantDefRefAccess().getConstantAssignment()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleconstantDefRef


    // $ANTLR start entryRulevalueExpression
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1632:1: entryRulevalueExpression : rulevalueExpression EOF ;
    public final void entryRulevalueExpression() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1633:1: ( rulevalueExpression EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1634:1: rulevalueExpression EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getValueExpressionRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulevalueExpression_in_entryRulevalueExpression3428);
            rulevalueExpression();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getValueExpressionRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRulevalueExpression3435); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRulevalueExpression


    // $ANTLR start rulevalueExpression
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1641:1: rulevalueExpression : ( ( rule__ValueExpression__ValueAssignment ) ) ;
    public final void rulevalueExpression() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1645:2: ( ( ( rule__ValueExpression__ValueAssignment ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1646:1: ( ( rule__ValueExpression__ValueAssignment ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1646:1: ( ( rule__ValueExpression__ValueAssignment ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1647:1: ( rule__ValueExpression__ValueAssignment )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getValueExpressionAccess().getValueAssignment()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1648:1: ( rule__ValueExpression__ValueAssignment )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1648:2: rule__ValueExpression__ValueAssignment
            {
            pushFollow(FollowSets000.FOLLOW_rule__ValueExpression__ValueAssignment_in_rulevalueExpression3461);
            rule__ValueExpression__ValueAssignment();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getValueExpressionAccess().getValueAssignment()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rulevalueExpression


    // $ANTLR start entryRuleliteral
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1660:1: entryRuleliteral : ruleliteral EOF ;
    public final void entryRuleliteral() throws RecognitionException {
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1661:1: ( ruleliteral EOF )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1662:1: ruleliteral EOF
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getLiteralRule()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleliteral_in_entryRuleliteral3488);
            ruleliteral();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getLiteralRule()); 
            }
            match(input,EOF,FollowSets000.FOLLOW_EOF_in_entryRuleliteral3495); if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return ;
    }
    // $ANTLR end entryRuleliteral


    // $ANTLR start ruleliteral
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1669:1: ruleliteral : ( ( rule__Literal__Alternatives ) ) ;
    public final void ruleliteral() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1673:2: ( ( ( rule__Literal__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1674:1: ( ( rule__Literal__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1674:1: ( ( rule__Literal__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1675:1: ( rule__Literal__Alternatives )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getLiteralAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1676:1: ( rule__Literal__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1676:2: rule__Literal__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Literal__Alternatives_in_ruleliteral3521);
            rule__Literal__Alternatives();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getLiteralAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleliteral


    // $ANTLR start ruleparam_attribute
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1689:1: ruleparam_attribute : ( ( rule__Param_attribute__Alternatives ) ) ;
    public final void ruleparam_attribute() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1693:1: ( ( ( rule__Param_attribute__Alternatives ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1694:1: ( ( rule__Param_attribute__Alternatives ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1694:1: ( ( rule__Param_attribute__Alternatives ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1695:1: ( rule__Param_attribute__Alternatives )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getParam_attributeAccess().getAlternatives()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1696:1: ( rule__Param_attribute__Alternatives )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1696:2: rule__Param_attribute__Alternatives
            {
            pushFollow(FollowSets000.FOLLOW_rule__Param_attribute__Alternatives_in_ruleparam_attribute3558);
            rule__Param_attribute__Alternatives();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getParam_attributeAccess().getAlternatives()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleparam_attribute


    // $ANTLR start rulefloat_type
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1708:1: rulefloat_type : ( ( 'float' ) ) ;
    public final void rulefloat_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1712:1: ( ( ( 'float' ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1713:1: ( ( 'float' ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1713:1: ( ( 'float' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1714:1: ( 'float' )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getFloat_typeAccess().getPK_FLOATEnumLiteralDeclaration()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1715:1: ( 'float' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1715:3: 'float'
            {
            match(input,16,FollowSets000.FOLLOW_16_in_rulefloat_type3595); if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getFloat_typeAccess().getPK_FLOATEnumLiteralDeclaration()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rulefloat_type


    // $ANTLR start ruledouble_type
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1728:1: ruledouble_type : ( ( 'double' ) ) ;
    public final void ruledouble_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1732:1: ( ( ( 'double' ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1733:1: ( ( 'double' ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1733:1: ( ( 'double' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1734:1: ( 'double' )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getDouble_typeAccess().getPK_DOUBLEEnumLiteralDeclaration()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1735:1: ( 'double' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1735:3: 'double'
            {
            match(input,17,FollowSets000.FOLLOW_17_in_ruledouble_type3634); if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getDouble_typeAccess().getPK_DOUBLEEnumLiteralDeclaration()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruledouble_type


    // $ANTLR start ruleshort_type
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1748:1: ruleshort_type : ( ( 'short' ) ) ;
    public final void ruleshort_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1752:1: ( ( ( 'short' ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1753:1: ( ( 'short' ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1753:1: ( ( 'short' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1754:1: ( 'short' )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getShort_typeAccess().getPK_SHORTEnumLiteralDeclaration()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1755:1: ( 'short' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1755:3: 'short'
            {
            match(input,18,FollowSets000.FOLLOW_18_in_ruleshort_type3673); if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getShort_typeAccess().getPK_SHORTEnumLiteralDeclaration()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleshort_type


    // $ANTLR start rulelong_type
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1768:1: rulelong_type : ( ( 'long' ) ) ;
    public final void rulelong_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1772:1: ( ( ( 'long' ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1773:1: ( ( 'long' ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1773:1: ( ( 'long' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1774:1: ( 'long' )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getLong_typeAccess().getPK_LONGEnumLiteralDeclaration()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1775:1: ( 'long' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1775:3: 'long'
            {
            match(input,19,FollowSets000.FOLLOW_19_in_rulelong_type3712); if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getLong_typeAccess().getPK_LONGEnumLiteralDeclaration()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rulelong_type


    // $ANTLR start rulechar_type
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1788:1: rulechar_type : ( ( 'char' ) ) ;
    public final void rulechar_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1792:1: ( ( ( 'char' ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1793:1: ( ( 'char' ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1793:1: ( ( 'char' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1794:1: ( 'char' )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getChar_typeAccess().getPK_CHAREnumLiteralDeclaration()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1795:1: ( 'char' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1795:3: 'char'
            {
            match(input,20,FollowSets000.FOLLOW_20_in_rulechar_type3751); if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getChar_typeAccess().getPK_CHAREnumLiteralDeclaration()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rulechar_type


    // $ANTLR start rulewide_char_type
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1808:1: rulewide_char_type : ( ( 'wchar' ) ) ;
    public final void rulewide_char_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1812:1: ( ( ( 'wchar' ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1813:1: ( ( 'wchar' ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1813:1: ( ( 'wchar' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1814:1: ( 'wchar' )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getWide_char_typeAccess().getPK_WCHAREnumLiteralDeclaration()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1815:1: ( 'wchar' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1815:3: 'wchar'
            {
            match(input,21,FollowSets000.FOLLOW_21_in_rulewide_char_type3790); if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getWide_char_typeAccess().getPK_WCHAREnumLiteralDeclaration()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rulewide_char_type


    // $ANTLR start rulestring_type
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1828:1: rulestring_type : ( ( 'string' ) ) ;
    public final void rulestring_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1832:1: ( ( ( 'string' ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1833:1: ( ( 'string' ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1833:1: ( ( 'string' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1834:1: ( 'string' )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getString_typeAccess().getPK_STRINGEnumLiteralDeclaration()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1835:1: ( 'string' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1835:3: 'string'
            {
            match(input,22,FollowSets000.FOLLOW_22_in_rulestring_type3829); if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getString_typeAccess().getPK_STRINGEnumLiteralDeclaration()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rulestring_type


    // $ANTLR start rulewide_string_type
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1848:1: rulewide_string_type : ( ( 'wstring' ) ) ;
    public final void rulewide_string_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1852:1: ( ( ( 'wstring' ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1853:1: ( ( 'wstring' ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1853:1: ( ( 'wstring' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1854:1: ( 'wstring' )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getWide_string_typeAccess().getPK_WSTRINGEnumLiteralDeclaration()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1855:1: ( 'wstring' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1855:3: 'wstring'
            {
            match(input,23,FollowSets000.FOLLOW_23_in_rulewide_string_type3868); if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getWide_string_typeAccess().getPK_WSTRINGEnumLiteralDeclaration()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rulewide_string_type


    // $ANTLR start ruleboolean_type
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1868:1: ruleboolean_type : ( ( 'boolean' ) ) ;
    public final void ruleboolean_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1872:1: ( ( ( 'boolean' ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1873:1: ( ( 'boolean' ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1873:1: ( ( 'boolean' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1874:1: ( 'boolean' )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getBoolean_typeAccess().getPK_BOOLEANEnumLiteralDeclaration()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1875:1: ( 'boolean' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1875:3: 'boolean'
            {
            match(input,24,FollowSets000.FOLLOW_24_in_ruleboolean_type3907); if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getBoolean_typeAccess().getPK_BOOLEANEnumLiteralDeclaration()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleboolean_type


    // $ANTLR start ruleoctet_type
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1888:1: ruleoctet_type : ( ( 'octet' ) ) ;
    public final void ruleoctet_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1892:1: ( ( ( 'octet' ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1893:1: ( ( 'octet' ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1893:1: ( ( 'octet' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1894:1: ( 'octet' )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOctet_typeAccess().getPK_OCTETEnumLiteralDeclaration()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1895:1: ( 'octet' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1895:3: 'octet'
            {
            match(input,25,FollowSets000.FOLLOW_25_in_ruleoctet_type3946); if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getOctet_typeAccess().getPK_OCTETEnumLiteralDeclaration()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleoctet_type


    // $ANTLR start ruleany_type
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1908:1: ruleany_type : ( ( 'any' ) ) ;
    public final void ruleany_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1912:1: ( ( ( 'any' ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1913:1: ( ( 'any' ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1913:1: ( ( 'any' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1914:1: ( 'any' )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAny_typeAccess().getPK_ANYEnumLiteralDeclaration()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1915:1: ( 'any' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1915:3: 'any'
            {
            match(input,26,FollowSets000.FOLLOW_26_in_ruleany_type3985); if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getAny_typeAccess().getPK_ANYEnumLiteralDeclaration()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleany_type


    // $ANTLR start ruleobject_type
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1928:1: ruleobject_type : ( ( 'Object' ) ) ;
    public final void ruleobject_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1932:1: ( ( ( 'Object' ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1933:1: ( ( 'Object' ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1933:1: ( ( 'Object' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1934:1: ( 'Object' )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getObject_typeAccess().getPK_OBJREFEnumLiteralDeclaration()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1935:1: ( 'Object' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1935:3: 'Object'
            {
            match(input,27,FollowSets000.FOLLOW_27_in_ruleobject_type4024); if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getObject_typeAccess().getPK_OBJREFEnumLiteralDeclaration()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end ruleobject_type


    // $ANTLR start rulevoid_type
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1948:1: rulevoid_type : ( ( 'void' ) ) ;
    public final void rulevoid_type() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1952:1: ( ( ( 'void' ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1953:1: ( ( 'void' ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1953:1: ( ( 'void' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1954:1: ( 'void' )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getVoid_typeAccess().getPK_VOIDEnumLiteralDeclaration()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1955:1: ( 'void' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1955:3: 'void'
            {
            match(input,28,FollowSets000.FOLLOW_28_in_rulevoid_type4063); if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getVoid_typeAccess().getPK_VOIDEnumLiteralDeclaration()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rulevoid_type


    // $ANTLR start rule__Definition__Alternatives
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1967:1: rule__Definition__Alternatives : ( ( ( rule__Definition__Group_0__0 ) ) | ( ( rule__Definition__Group_1__0 ) ) | ( ( rule__Definition__Group_2__0 ) ) | ( ( rule__Definition__Group_3__0 ) ) | ( ( rule__Definition__Group_4__0 ) ) | ( ( rule__Definition__Group_5__0 ) ) );
    public final void rule__Definition__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1971:1: ( ( ( rule__Definition__Group_0__0 ) ) | ( ( rule__Definition__Group_1__0 ) ) | ( ( rule__Definition__Group_2__0 ) ) | ( ( rule__Definition__Group_3__0 ) ) | ( ( rule__Definition__Group_4__0 ) ) | ( ( rule__Definition__Group_5__0 ) ) )
            int alt1=6;
            switch ( input.LA(1) ) {
            case 58:
            case 59:
            case 62:
            case 63:
            case 67:
                {
                alt1=1;
                }
                break;
            case 68:
                {
                alt1=2;
                }
                break;
            case 57:
                {
                alt1=3;
                }
                break;
            case 30:
                {
                int LA1_4 = input.LA(2);

                if ( (LA1_4==47) ) {
                    int LA1_6 = input.LA(3);

                    if ( (LA1_6==RULE_ID) ) {
                        int LA1_8 = input.LA(4);

                        if ( (LA1_8==29) ) {
                            alt1=5;
                        }
                        else if ( (LA1_8==45||LA1_8==48) ) {
                            alt1=4;
                        }
                        else {
                            if (backtracking>0) {failed=true; return ;}
                            NoViableAltException nvae =
                                new NoViableAltException("1967:1: rule__Definition__Alternatives : ( ( ( rule__Definition__Group_0__0 ) ) | ( ( rule__Definition__Group_1__0 ) ) | ( ( rule__Definition__Group_2__0 ) ) | ( ( rule__Definition__Group_3__0 ) ) | ( ( rule__Definition__Group_4__0 ) ) | ( ( rule__Definition__Group_5__0 ) ) );", 1, 8, input);

                            throw nvae;
                        }
                    }
                    else {
                        if (backtracking>0) {failed=true; return ;}
                        NoViableAltException nvae =
                            new NoViableAltException("1967:1: rule__Definition__Alternatives : ( ( ( rule__Definition__Group_0__0 ) ) | ( ( rule__Definition__Group_1__0 ) ) | ( ( rule__Definition__Group_2__0 ) ) | ( ( rule__Definition__Group_3__0 ) ) | ( ( rule__Definition__Group_4__0 ) ) | ( ( rule__Definition__Group_5__0 ) ) );", 1, 6, input);

                        throw nvae;
                    }
                }
                else {
                    if (backtracking>0) {failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("1967:1: rule__Definition__Alternatives : ( ( ( rule__Definition__Group_0__0 ) ) | ( ( rule__Definition__Group_1__0 ) ) | ( ( rule__Definition__Group_2__0 ) ) | ( ( rule__Definition__Group_3__0 ) ) | ( ( rule__Definition__Group_4__0 ) ) | ( ( rule__Definition__Group_5__0 ) ) );", 1, 4, input);

                    throw nvae;
                }
                }
                break;
            case 31:
                {
                int LA1_5 = input.LA(2);

                if ( (LA1_5==47) ) {
                    int LA1_6 = input.LA(3);

                    if ( (LA1_6==RULE_ID) ) {
                        int LA1_8 = input.LA(4);

                        if ( (LA1_8==29) ) {
                            alt1=5;
                        }
                        else if ( (LA1_8==45||LA1_8==48) ) {
                            alt1=4;
                        }
                        else {
                            if (backtracking>0) {failed=true; return ;}
                            NoViableAltException nvae =
                                new NoViableAltException("1967:1: rule__Definition__Alternatives : ( ( ( rule__Definition__Group_0__0 ) ) | ( ( rule__Definition__Group_1__0 ) ) | ( ( rule__Definition__Group_2__0 ) ) | ( ( rule__Definition__Group_3__0 ) ) | ( ( rule__Definition__Group_4__0 ) ) | ( ( rule__Definition__Group_5__0 ) ) );", 1, 8, input);

                            throw nvae;
                        }
                    }
                    else {
                        if (backtracking>0) {failed=true; return ;}
                        NoViableAltException nvae =
                            new NoViableAltException("1967:1: rule__Definition__Alternatives : ( ( ( rule__Definition__Group_0__0 ) ) | ( ( rule__Definition__Group_1__0 ) ) | ( ( rule__Definition__Group_2__0 ) ) | ( ( rule__Definition__Group_3__0 ) ) | ( ( rule__Definition__Group_4__0 ) ) | ( ( rule__Definition__Group_5__0 ) ) );", 1, 6, input);

                        throw nvae;
                    }
                }
                else {
                    if (backtracking>0) {failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("1967:1: rule__Definition__Alternatives : ( ( ( rule__Definition__Group_0__0 ) ) | ( ( rule__Definition__Group_1__0 ) ) | ( ( rule__Definition__Group_2__0 ) ) | ( ( rule__Definition__Group_3__0 ) ) | ( ( rule__Definition__Group_4__0 ) ) | ( ( rule__Definition__Group_5__0 ) ) );", 1, 5, input);

                    throw nvae;
                }
                }
                break;
            case 47:
                {
                int LA1_6 = input.LA(2);

                if ( (LA1_6==RULE_ID) ) {
                    int LA1_8 = input.LA(3);

                    if ( (LA1_8==29) ) {
                        alt1=5;
                    }
                    else if ( (LA1_8==45||LA1_8==48) ) {
                        alt1=4;
                    }
                    else {
                        if (backtracking>0) {failed=true; return ;}
                        NoViableAltException nvae =
                            new NoViableAltException("1967:1: rule__Definition__Alternatives : ( ( ( rule__Definition__Group_0__0 ) ) | ( ( rule__Definition__Group_1__0 ) ) | ( ( rule__Definition__Group_2__0 ) ) | ( ( rule__Definition__Group_3__0 ) ) | ( ( rule__Definition__Group_4__0 ) ) | ( ( rule__Definition__Group_5__0 ) ) );", 1, 8, input);

                        throw nvae;
                    }
                }
                else {
                    if (backtracking>0) {failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("1967:1: rule__Definition__Alternatives : ( ( ( rule__Definition__Group_0__0 ) ) | ( ( rule__Definition__Group_1__0 ) ) | ( ( rule__Definition__Group_2__0 ) ) | ( ( rule__Definition__Group_3__0 ) ) | ( ( rule__Definition__Group_4__0 ) ) | ( ( rule__Definition__Group_5__0 ) ) );", 1, 6, input);

                    throw nvae;
                }
                }
                break;
            case 44:
                {
                alt1=6;
                }
                break;
            default:
                if (backtracking>0) {failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("1967:1: rule__Definition__Alternatives : ( ( ( rule__Definition__Group_0__0 ) ) | ( ( rule__Definition__Group_1__0 ) ) | ( ( rule__Definition__Group_2__0 ) ) | ( ( rule__Definition__Group_3__0 ) ) | ( ( rule__Definition__Group_4__0 ) ) | ( ( rule__Definition__Group_5__0 ) ) );", 1, 0, input);

                throw nvae;
            }

            switch (alt1) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1972:1: ( ( rule__Definition__Group_0__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1972:1: ( ( rule__Definition__Group_0__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1973:1: ( rule__Definition__Group_0__0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getDefinitionAccess().getGroup_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1974:1: ( rule__Definition__Group_0__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1974:2: rule__Definition__Group_0__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Definition__Group_0__0_in_rule__Definition__Alternatives4100);
                    rule__Definition__Group_0__0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getDefinitionAccess().getGroup_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1978:6: ( ( rule__Definition__Group_1__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1978:6: ( ( rule__Definition__Group_1__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1979:1: ( rule__Definition__Group_1__0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getDefinitionAccess().getGroup_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1980:1: ( rule__Definition__Group_1__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1980:2: rule__Definition__Group_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Definition__Group_1__0_in_rule__Definition__Alternatives4118);
                    rule__Definition__Group_1__0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getDefinitionAccess().getGroup_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1984:6: ( ( rule__Definition__Group_2__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1984:6: ( ( rule__Definition__Group_2__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1985:1: ( rule__Definition__Group_2__0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getDefinitionAccess().getGroup_2()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1986:1: ( rule__Definition__Group_2__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1986:2: rule__Definition__Group_2__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Definition__Group_2__0_in_rule__Definition__Alternatives4136);
                    rule__Definition__Group_2__0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getDefinitionAccess().getGroup_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1990:6: ( ( rule__Definition__Group_3__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1990:6: ( ( rule__Definition__Group_3__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1991:1: ( rule__Definition__Group_3__0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getDefinitionAccess().getGroup_3()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1992:1: ( rule__Definition__Group_3__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1992:2: rule__Definition__Group_3__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Definition__Group_3__0_in_rule__Definition__Alternatives4154);
                    rule__Definition__Group_3__0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getDefinitionAccess().getGroup_3()); 
                    }

                    }


                    }
                    break;
                case 5 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1996:6: ( ( rule__Definition__Group_4__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1996:6: ( ( rule__Definition__Group_4__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1997:1: ( rule__Definition__Group_4__0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getDefinitionAccess().getGroup_4()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1998:1: ( rule__Definition__Group_4__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:1998:2: rule__Definition__Group_4__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Definition__Group_4__0_in_rule__Definition__Alternatives4172);
                    rule__Definition__Group_4__0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getDefinitionAccess().getGroup_4()); 
                    }

                    }


                    }
                    break;
                case 6 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2002:6: ( ( rule__Definition__Group_5__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2002:6: ( ( rule__Definition__Group_5__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2003:1: ( rule__Definition__Group_5__0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getDefinitionAccess().getGroup_5()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2004:1: ( rule__Definition__Group_5__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2004:2: rule__Definition__Group_5__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Definition__Group_5__0_in_rule__Definition__Alternatives4190);
                    rule__Definition__Group_5__0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getDefinitionAccess().getGroup_5()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Definition__Alternatives


    // $ANTLR start rule__Module__Alternatives_3
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2013:1: rule__Module__Alternatives_3 : ( ( ( rule__Module__ContainsAssignment_3_0 ) ) | ( ';' ) );
    public final void rule__Module__Alternatives_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2017:1: ( ( ( rule__Module__ContainsAssignment_3_0 ) ) | ( ';' ) )
            int alt2=2;
            int LA2_0 = input.LA(1);

            if ( ((LA2_0>=30 && LA2_0<=31)||LA2_0==44||LA2_0==47||(LA2_0>=57 && LA2_0<=59)||(LA2_0>=62 && LA2_0<=63)||(LA2_0>=67 && LA2_0<=68)) ) {
                alt2=1;
            }
            else if ( (LA2_0==29) ) {
                alt2=2;
            }
            else {
                if (backtracking>0) {failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("2013:1: rule__Module__Alternatives_3 : ( ( ( rule__Module__ContainsAssignment_3_0 ) ) | ( ';' ) );", 2, 0, input);

                throw nvae;
            }
            switch (alt2) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2018:1: ( ( rule__Module__ContainsAssignment_3_0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2018:1: ( ( rule__Module__ContainsAssignment_3_0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2019:1: ( rule__Module__ContainsAssignment_3_0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getModuleAccess().getContainsAssignment_3_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2020:1: ( rule__Module__ContainsAssignment_3_0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2020:2: rule__Module__ContainsAssignment_3_0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Module__ContainsAssignment_3_0_in_rule__Module__Alternatives_34223);
                    rule__Module__ContainsAssignment_3_0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getModuleAccess().getContainsAssignment_3_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2024:6: ( ';' )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2024:6: ( ';' )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2025:1: ';'
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getModuleAccess().getSemicolonKeyword_3_1()); 
                    }
                    match(input,29,FollowSets000.FOLLOW_29_in_rule__Module__Alternatives_34242); if (failed) return ;
                    if ( backtracking==0 ) {
                       after(grammarAccess.getModuleAccess().getSemicolonKeyword_3_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Module__Alternatives_3


    // $ANTLR start rule__Interface_decl__Alternatives_0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2037:1: rule__Interface_decl__Alternatives_0 : ( ( ( rule__Interface_decl__IsAbstractAssignment_0_0 ) ) | ( ( rule__Interface_decl__IsCustomAssignment_0_1 ) ) );
    public final void rule__Interface_decl__Alternatives_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2041:1: ( ( ( rule__Interface_decl__IsAbstractAssignment_0_0 ) ) | ( ( rule__Interface_decl__IsCustomAssignment_0_1 ) ) )
            int alt3=2;
            int LA3_0 = input.LA(1);

            if ( (LA3_0==30) ) {
                alt3=1;
            }
            else if ( (LA3_0==31) ) {
                alt3=2;
            }
            else {
                if (backtracking>0) {failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("2037:1: rule__Interface_decl__Alternatives_0 : ( ( ( rule__Interface_decl__IsAbstractAssignment_0_0 ) ) | ( ( rule__Interface_decl__IsCustomAssignment_0_1 ) ) );", 3, 0, input);

                throw nvae;
            }
            switch (alt3) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2042:1: ( ( rule__Interface_decl__IsAbstractAssignment_0_0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2042:1: ( ( rule__Interface_decl__IsAbstractAssignment_0_0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2043:1: ( rule__Interface_decl__IsAbstractAssignment_0_0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getInterface_declAccess().getIsAbstractAssignment_0_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2044:1: ( rule__Interface_decl__IsAbstractAssignment_0_0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2044:2: rule__Interface_decl__IsAbstractAssignment_0_0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__IsAbstractAssignment_0_0_in_rule__Interface_decl__Alternatives_04276);
                    rule__Interface_decl__IsAbstractAssignment_0_0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getInterface_declAccess().getIsAbstractAssignment_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2048:6: ( ( rule__Interface_decl__IsCustomAssignment_0_1 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2048:6: ( ( rule__Interface_decl__IsCustomAssignment_0_1 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2049:1: ( rule__Interface_decl__IsCustomAssignment_0_1 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getInterface_declAccess().getIsCustomAssignment_0_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2050:1: ( rule__Interface_decl__IsCustomAssignment_0_1 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2050:2: rule__Interface_decl__IsCustomAssignment_0_1
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__IsCustomAssignment_0_1_in_rule__Interface_decl__Alternatives_04294);
                    rule__Interface_decl__IsCustomAssignment_0_1();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getInterface_declAccess().getIsCustomAssignment_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Interface_decl__Alternatives_0


    // $ANTLR start rule__Interface_decl__Alternatives_5
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2059:1: rule__Interface_decl__Alternatives_5 : ( ( ( rule__Interface_decl__ContainsAssignment_5_0 ) ) | ( ';' ) );
    public final void rule__Interface_decl__Alternatives_5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2063:1: ( ( ( rule__Interface_decl__ContainsAssignment_5_0 ) ) | ( ';' ) )
            int alt4=2;
            int LA4_0 = input.LA(1);

            if ( (LA4_0==RULE_ID||(LA4_0>=16 && LA4_0<=28)||LA4_0==54||(LA4_0>=57 && LA4_0<=59)||(LA4_0>=62 && LA4_0<=63)||(LA4_0>=67 && LA4_0<=68)||(LA4_0>=74 && LA4_0<=76)) ) {
                alt4=1;
            }
            else if ( (LA4_0==29) ) {
                alt4=2;
            }
            else {
                if (backtracking>0) {failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("2059:1: rule__Interface_decl__Alternatives_5 : ( ( ( rule__Interface_decl__ContainsAssignment_5_0 ) ) | ( ';' ) );", 4, 0, input);

                throw nvae;
            }
            switch (alt4) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2064:1: ( ( rule__Interface_decl__ContainsAssignment_5_0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2064:1: ( ( rule__Interface_decl__ContainsAssignment_5_0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2065:1: ( rule__Interface_decl__ContainsAssignment_5_0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getInterface_declAccess().getContainsAssignment_5_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2066:1: ( rule__Interface_decl__ContainsAssignment_5_0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2066:2: rule__Interface_decl__ContainsAssignment_5_0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__ContainsAssignment_5_0_in_rule__Interface_decl__Alternatives_54327);
                    rule__Interface_decl__ContainsAssignment_5_0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getInterface_declAccess().getContainsAssignment_5_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2070:6: ( ';' )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2070:6: ( ';' )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2071:1: ';'
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getInterface_declAccess().getSemicolonKeyword_5_1()); 
                    }
                    match(input,29,FollowSets000.FOLLOW_29_in_rule__Interface_decl__Alternatives_54346); if (failed) return ;
                    if ( backtracking==0 ) {
                       after(grammarAccess.getInterface_declAccess().getSemicolonKeyword_5_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Interface_decl__Alternatives_5


    // $ANTLR start rule__Interface_fwd__Alternatives_0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2083:1: rule__Interface_fwd__Alternatives_0 : ( ( 'abstract' ) | ( 'local' ) );
    public final void rule__Interface_fwd__Alternatives_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2087:1: ( ( 'abstract' ) | ( 'local' ) )
            int alt5=2;
            int LA5_0 = input.LA(1);

            if ( (LA5_0==30) ) {
                alt5=1;
            }
            else if ( (LA5_0==31) ) {
                alt5=2;
            }
            else {
                if (backtracking>0) {failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("2083:1: rule__Interface_fwd__Alternatives_0 : ( ( 'abstract' ) | ( 'local' ) );", 5, 0, input);

                throw nvae;
            }
            switch (alt5) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2088:1: ( 'abstract' )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2088:1: ( 'abstract' )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2089:1: 'abstract'
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getInterface_fwdAccess().getAbstractKeyword_0_0()); 
                    }
                    match(input,30,FollowSets000.FOLLOW_30_in_rule__Interface_fwd__Alternatives_04381); if (failed) return ;
                    if ( backtracking==0 ) {
                       after(grammarAccess.getInterface_fwdAccess().getAbstractKeyword_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2096:6: ( 'local' )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2096:6: ( 'local' )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2097:1: 'local'
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getInterface_fwdAccess().getLocalKeyword_0_1()); 
                    }
                    match(input,31,FollowSets000.FOLLOW_31_in_rule__Interface_fwd__Alternatives_04401); if (failed) return ;
                    if ( backtracking==0 ) {
                       after(grammarAccess.getInterface_fwdAccess().getLocalKeyword_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Interface_fwd__Alternatives_0


    // $ANTLR start rule__Export__Alternatives
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2109:1: rule__Export__Alternatives : ( ( ( rule__Export__Group_0__0 ) ) | ( ( rule__Export__Group_1__0 ) ) | ( ( rule__Export__Group_2__0 ) ) | ( ( rule__Export__Group_3__0 ) ) | ( ( rule__Export__Group_4__0 ) ) );
    public final void rule__Export__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2113:1: ( ( ( rule__Export__Group_0__0 ) ) | ( ( rule__Export__Group_1__0 ) ) | ( ( rule__Export__Group_2__0 ) ) | ( ( rule__Export__Group_3__0 ) ) | ( ( rule__Export__Group_4__0 ) ) )
            int alt6=5;
            switch ( input.LA(1) ) {
            case 58:
            case 59:
            case 62:
            case 63:
            case 67:
                {
                alt6=1;
                }
                break;
            case 68:
                {
                alt6=2;
                }
                break;
            case 57:
                {
                alt6=3;
                }
                break;
            case 54:
            case 76:
                {
                alt6=4;
                }
                break;
            case RULE_ID:
            case 16:
            case 17:
            case 18:
            case 19:
            case 20:
            case 21:
            case 22:
            case 23:
            case 24:
            case 25:
            case 26:
            case 27:
            case 28:
            case 74:
            case 75:
                {
                alt6=5;
                }
                break;
            default:
                if (backtracking>0) {failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("2109:1: rule__Export__Alternatives : ( ( ( rule__Export__Group_0__0 ) ) | ( ( rule__Export__Group_1__0 ) ) | ( ( rule__Export__Group_2__0 ) ) | ( ( rule__Export__Group_3__0 ) ) | ( ( rule__Export__Group_4__0 ) ) );", 6, 0, input);

                throw nvae;
            }

            switch (alt6) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2114:1: ( ( rule__Export__Group_0__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2114:1: ( ( rule__Export__Group_0__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2115:1: ( rule__Export__Group_0__0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getExportAccess().getGroup_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2116:1: ( rule__Export__Group_0__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2116:2: rule__Export__Group_0__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Export__Group_0__0_in_rule__Export__Alternatives4435);
                    rule__Export__Group_0__0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getExportAccess().getGroup_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2120:6: ( ( rule__Export__Group_1__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2120:6: ( ( rule__Export__Group_1__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2121:1: ( rule__Export__Group_1__0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getExportAccess().getGroup_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2122:1: ( rule__Export__Group_1__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2122:2: rule__Export__Group_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Export__Group_1__0_in_rule__Export__Alternatives4453);
                    rule__Export__Group_1__0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getExportAccess().getGroup_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2126:6: ( ( rule__Export__Group_2__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2126:6: ( ( rule__Export__Group_2__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2127:1: ( rule__Export__Group_2__0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getExportAccess().getGroup_2()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2128:1: ( rule__Export__Group_2__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2128:2: rule__Export__Group_2__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Export__Group_2__0_in_rule__Export__Alternatives4471);
                    rule__Export__Group_2__0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getExportAccess().getGroup_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2132:6: ( ( rule__Export__Group_3__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2132:6: ( ( rule__Export__Group_3__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2133:1: ( rule__Export__Group_3__0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getExportAccess().getGroup_3()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2134:1: ( rule__Export__Group_3__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2134:2: rule__Export__Group_3__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Export__Group_3__0_in_rule__Export__Alternatives4489);
                    rule__Export__Group_3__0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getExportAccess().getGroup_3()); 
                    }

                    }


                    }
                    break;
                case 5 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2138:6: ( ( rule__Export__Group_4__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2138:6: ( ( rule__Export__Group_4__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2139:1: ( rule__Export__Group_4__0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getExportAccess().getGroup_4()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2140:1: ( rule__Export__Group_4__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2140:2: rule__Export__Group_4__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Export__Group_4__0_in_rule__Export__Alternatives4507);
                    rule__Export__Group_4__0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getExportAccess().getGroup_4()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Export__Alternatives


    // $ANTLR start rule__Op_decl__Alternatives_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2149:1: rule__Op_decl__Alternatives_1 : ( ( ( rule__Op_decl__ContainedTypeAssignment_1_0 ) ) | ( ( rule__Op_decl__SharedTypeAssignment_1_1 ) ) );
    public final void rule__Op_decl__Alternatives_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2153:1: ( ( ( rule__Op_decl__ContainedTypeAssignment_1_0 ) ) | ( ( rule__Op_decl__SharedTypeAssignment_1_1 ) ) )
            int alt7=2;
            int LA7_0 = input.LA(1);

            if ( ((LA7_0>=16 && LA7_0<=28)||LA7_0==74) ) {
                alt7=1;
            }
            else if ( (LA7_0==RULE_ID) ) {
                alt7=2;
            }
            else {
                if (backtracking>0) {failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("2149:1: rule__Op_decl__Alternatives_1 : ( ( ( rule__Op_decl__ContainedTypeAssignment_1_0 ) ) | ( ( rule__Op_decl__SharedTypeAssignment_1_1 ) ) );", 7, 0, input);

                throw nvae;
            }
            switch (alt7) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2154:1: ( ( rule__Op_decl__ContainedTypeAssignment_1_0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2154:1: ( ( rule__Op_decl__ContainedTypeAssignment_1_0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2155:1: ( rule__Op_decl__ContainedTypeAssignment_1_0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getOp_declAccess().getContainedTypeAssignment_1_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2156:1: ( rule__Op_decl__ContainedTypeAssignment_1_0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2156:2: rule__Op_decl__ContainedTypeAssignment_1_0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Op_decl__ContainedTypeAssignment_1_0_in_rule__Op_decl__Alternatives_14540);
                    rule__Op_decl__ContainedTypeAssignment_1_0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getOp_declAccess().getContainedTypeAssignment_1_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2160:6: ( ( rule__Op_decl__SharedTypeAssignment_1_1 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2160:6: ( ( rule__Op_decl__SharedTypeAssignment_1_1 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2161:1: ( rule__Op_decl__SharedTypeAssignment_1_1 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getOp_declAccess().getSharedTypeAssignment_1_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2162:1: ( rule__Op_decl__SharedTypeAssignment_1_1 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2162:2: rule__Op_decl__SharedTypeAssignment_1_1
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Op_decl__SharedTypeAssignment_1_1_in_rule__Op_decl__Alternatives_14558);
                    rule__Op_decl__SharedTypeAssignment_1_1();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getOp_declAccess().getSharedTypeAssignment_1_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Alternatives_1


    // $ANTLR start rule__Op_type_spec__Alternatives
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2171:1: rule__Op_type_spec__Alternatives : ( ( rulebase_type_spec ) | ( ( rule__Op_type_spec__Group_1__0 ) ) );
    public final void rule__Op_type_spec__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2175:1: ( ( rulebase_type_spec ) | ( ( rule__Op_type_spec__Group_1__0 ) ) )
            int alt8=2;
            int LA8_0 = input.LA(1);

            if ( ((LA8_0>=16 && LA8_0<=27)||LA8_0==74) ) {
                alt8=1;
            }
            else if ( (LA8_0==28) ) {
                alt8=2;
            }
            else {
                if (backtracking>0) {failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("2171:1: rule__Op_type_spec__Alternatives : ( ( rulebase_type_spec ) | ( ( rule__Op_type_spec__Group_1__0 ) ) );", 8, 0, input);

                throw nvae;
            }
            switch (alt8) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2176:1: ( rulebase_type_spec )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2176:1: ( rulebase_type_spec )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2177:1: rulebase_type_spec
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getOp_type_specAccess().getBase_type_specParserRuleCall_0()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_rulebase_type_spec_in_rule__Op_type_spec__Alternatives4591);
                    rulebase_type_spec();
                    _fsp--;
                    if (failed) return ;
                    if ( backtracking==0 ) {
                       after(grammarAccess.getOp_type_specAccess().getBase_type_specParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2182:6: ( ( rule__Op_type_spec__Group_1__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2182:6: ( ( rule__Op_type_spec__Group_1__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2183:1: ( rule__Op_type_spec__Group_1__0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getOp_type_specAccess().getGroup_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2184:1: ( rule__Op_type_spec__Group_1__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2184:2: rule__Op_type_spec__Group_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Op_type_spec__Group_1__0_in_rule__Op_type_spec__Alternatives4608);
                    rule__Op_type_spec__Group_1__0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getOp_type_specAccess().getGroup_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_type_spec__Alternatives


    // $ANTLR start rule__Param_decl__Alternatives_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2193:1: rule__Param_decl__Alternatives_1 : ( ( ( rule__Param_decl__ContainedTypeAssignment_1_0 ) ) | ( ( rule__Param_decl__SharedTypeAssignment_1_1 ) ) );
    public final void rule__Param_decl__Alternatives_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2197:1: ( ( ( rule__Param_decl__ContainedTypeAssignment_1_0 ) ) | ( ( rule__Param_decl__SharedTypeAssignment_1_1 ) ) )
            int alt9=2;
            int LA9_0 = input.LA(1);

            if ( ((LA9_0>=16 && LA9_0<=27)||LA9_0==74) ) {
                alt9=1;
            }
            else if ( (LA9_0==RULE_ID) ) {
                alt9=2;
            }
            else {
                if (backtracking>0) {failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("2193:1: rule__Param_decl__Alternatives_1 : ( ( ( rule__Param_decl__ContainedTypeAssignment_1_0 ) ) | ( ( rule__Param_decl__SharedTypeAssignment_1_1 ) ) );", 9, 0, input);

                throw nvae;
            }
            switch (alt9) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2198:1: ( ( rule__Param_decl__ContainedTypeAssignment_1_0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2198:1: ( ( rule__Param_decl__ContainedTypeAssignment_1_0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2199:1: ( rule__Param_decl__ContainedTypeAssignment_1_0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getParam_declAccess().getContainedTypeAssignment_1_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2200:1: ( rule__Param_decl__ContainedTypeAssignment_1_0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2200:2: rule__Param_decl__ContainedTypeAssignment_1_0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Param_decl__ContainedTypeAssignment_1_0_in_rule__Param_decl__Alternatives_14641);
                    rule__Param_decl__ContainedTypeAssignment_1_0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getParam_declAccess().getContainedTypeAssignment_1_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2204:6: ( ( rule__Param_decl__SharedTypeAssignment_1_1 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2204:6: ( ( rule__Param_decl__SharedTypeAssignment_1_1 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2205:1: ( rule__Param_decl__SharedTypeAssignment_1_1 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getParam_declAccess().getSharedTypeAssignment_1_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2206:1: ( rule__Param_decl__SharedTypeAssignment_1_1 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2206:2: rule__Param_decl__SharedTypeAssignment_1_1
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Param_decl__SharedTypeAssignment_1_1_in_rule__Param_decl__Alternatives_14659);
                    rule__Param_decl__SharedTypeAssignment_1_1();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getParam_declAccess().getSharedTypeAssignment_1_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Param_decl__Alternatives_1


    // $ANTLR start rule__Attr_decl__Alternatives
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2215:1: rule__Attr_decl__Alternatives : ( ( rulereadonly_attr_spec ) | ( ruleattr_spec ) );
    public final void rule__Attr_decl__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2219:1: ( ( rulereadonly_attr_spec ) | ( ruleattr_spec ) )
            int alt10=2;
            int LA10_0 = input.LA(1);

            if ( (LA10_0==76) ) {
                alt10=1;
            }
            else if ( (LA10_0==54) ) {
                alt10=2;
            }
            else {
                if (backtracking>0) {failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("2215:1: rule__Attr_decl__Alternatives : ( ( rulereadonly_attr_spec ) | ( ruleattr_spec ) );", 10, 0, input);

                throw nvae;
            }
            switch (alt10) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2220:1: ( rulereadonly_attr_spec )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2220:1: ( rulereadonly_attr_spec )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2221:1: rulereadonly_attr_spec
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getAttr_declAccess().getReadonly_attr_specParserRuleCall_0()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_rulereadonly_attr_spec_in_rule__Attr_decl__Alternatives4692);
                    rulereadonly_attr_spec();
                    _fsp--;
                    if (failed) return ;
                    if ( backtracking==0 ) {
                       after(grammarAccess.getAttr_declAccess().getReadonly_attr_specParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2226:6: ( ruleattr_spec )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2226:6: ( ruleattr_spec )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2227:1: ruleattr_spec
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getAttr_declAccess().getAttr_specParserRuleCall_1()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_ruleattr_spec_in_rule__Attr_decl__Alternatives4709);
                    ruleattr_spec();
                    _fsp--;
                    if (failed) return ;
                    if ( backtracking==0 ) {
                       after(grammarAccess.getAttr_declAccess().getAttr_specParserRuleCall_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_decl__Alternatives


    // $ANTLR start rule__Readonly_attr_spec__Alternatives
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2237:1: rule__Readonly_attr_spec__Alternatives : ( ( ( rule__Readonly_attr_spec__Group_0__0 ) ) | ( ( rule__Readonly_attr_spec__Group_1__0 ) ) );
    public final void rule__Readonly_attr_spec__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2241:1: ( ( ( rule__Readonly_attr_spec__Group_0__0 ) ) | ( ( rule__Readonly_attr_spec__Group_1__0 ) ) )
            int alt11=2;
            int LA11_0 = input.LA(1);

            if ( (LA11_0==76) ) {
                int LA11_1 = input.LA(2);

                if ( (LA11_1==54) ) {
                    switch ( input.LA(3) ) {
                    case 18:
                        {
                        int LA11_3 = input.LA(4);

                        if ( (LA11_3==RULE_ID) ) {
                            int LA11_17 = input.LA(5);

                            if ( (LA11_17==EOF||LA11_17==29) ) {
                                alt11=2;
                            }
                            else if ( (LA11_17==52) ) {
                                alt11=1;
                            }
                            else {
                                if (backtracking>0) {failed=true; return ;}
                                NoViableAltException nvae =
                                    new NoViableAltException("2237:1: rule__Readonly_attr_spec__Alternatives : ( ( ( rule__Readonly_attr_spec__Group_0__0 ) ) | ( ( rule__Readonly_attr_spec__Group_1__0 ) ) );", 11, 17, input);

                                throw nvae;
                            }
                        }
                        else {
                            if (backtracking>0) {failed=true; return ;}
                            NoViableAltException nvae =
                                new NoViableAltException("2237:1: rule__Readonly_attr_spec__Alternatives : ( ( ( rule__Readonly_attr_spec__Group_0__0 ) ) | ( ( rule__Readonly_attr_spec__Group_1__0 ) ) );", 11, 3, input);

                            throw nvae;
                        }
                        }
                        break;
                    case 19:
                        {
                        switch ( input.LA(4) ) {
                        case 17:
                            {
                            int LA11_18 = input.LA(5);

                            if ( (LA11_18==RULE_ID) ) {
                                int LA11_17 = input.LA(6);

                                if ( (LA11_17==EOF||LA11_17==29) ) {
                                    alt11=2;
                                }
                                else if ( (LA11_17==52) ) {
                                    alt11=1;
                                }
                                else {
                                    if (backtracking>0) {failed=true; return ;}
                                    NoViableAltException nvae =
                                        new NoViableAltException("2237:1: rule__Readonly_attr_spec__Alternatives : ( ( ( rule__Readonly_attr_spec__Group_0__0 ) ) | ( ( rule__Readonly_attr_spec__Group_1__0 ) ) );", 11, 17, input);

                                    throw nvae;
                                }
                            }
                            else {
                                if (backtracking>0) {failed=true; return ;}
                                NoViableAltException nvae =
                                    new NoViableAltException("2237:1: rule__Readonly_attr_spec__Alternatives : ( ( ( rule__Readonly_attr_spec__Group_0__0 ) ) | ( ( rule__Readonly_attr_spec__Group_1__0 ) ) );", 11, 18, input);

                                throw nvae;
                            }
                            }
                            break;
                        case 19:
                            {
                            int LA11_19 = input.LA(5);

                            if ( (LA11_19==RULE_ID) ) {
                                int LA11_17 = input.LA(6);

                                if ( (LA11_17==EOF||LA11_17==29) ) {
                                    alt11=2;
                                }
                                else if ( (LA11_17==52) ) {
                                    alt11=1;
                                }
                                else {
                                    if (backtracking>0) {failed=true; return ;}
                                    NoViableAltException nvae =
                                        new NoViableAltException("2237:1: rule__Readonly_attr_spec__Alternatives : ( ( ( rule__Readonly_attr_spec__Group_0__0 ) ) | ( ( rule__Readonly_attr_spec__Group_1__0 ) ) );", 11, 17, input);

                                    throw nvae;
                                }
                            }
                            else {
                                if (backtracking>0) {failed=true; return ;}
                                NoViableAltException nvae =
                                    new NoViableAltException("2237:1: rule__Readonly_attr_spec__Alternatives : ( ( ( rule__Readonly_attr_spec__Group_0__0 ) ) | ( ( rule__Readonly_attr_spec__Group_1__0 ) ) );", 11, 19, input);

                                throw nvae;
                            }
                            }
                            break;
                        case RULE_ID:
                            {
                            int LA11_17 = input.LA(5);

                            if ( (LA11_17==EOF||LA11_17==29) ) {
                                alt11=2;
                            }
                            else if ( (LA11_17==52) ) {
                                alt11=1;
                            }
                            else {
                                if (backtracking>0) {failed=true; return ;}
                                NoViableAltException nvae =
                                    new NoViableAltException("2237:1: rule__Readonly_attr_spec__Alternatives : ( ( ( rule__Readonly_attr_spec__Group_0__0 ) ) | ( ( rule__Readonly_attr_spec__Group_1__0 ) ) );", 11, 17, input);

                                throw nvae;
                            }
                            }
                            break;
                        default:
                            if (backtracking>0) {failed=true; return ;}
                            NoViableAltException nvae =
                                new NoViableAltException("2237:1: rule__Readonly_attr_spec__Alternatives : ( ( ( rule__Readonly_attr_spec__Group_0__0 ) ) | ( ( rule__Readonly_attr_spec__Group_1__0 ) ) );", 11, 4, input);

                            throw nvae;
                        }

                        }
                        break;
                    case 74:
                        {
                        int LA11_5 = input.LA(4);

                        if ( (LA11_5==19) ) {
                            int LA11_20 = input.LA(5);

                            if ( (LA11_20==RULE_ID) ) {
                                int LA11_17 = input.LA(6);

                                if ( (LA11_17==EOF||LA11_17==29) ) {
                                    alt11=2;
                                }
                                else if ( (LA11_17==52) ) {
                                    alt11=1;
                                }
                                else {
                                    if (backtracking>0) {failed=true; return ;}
                                    NoViableAltException nvae =
                                        new NoViableAltException("2237:1: rule__Readonly_attr_spec__Alternatives : ( ( ( rule__Readonly_attr_spec__Group_0__0 ) ) | ( ( rule__Readonly_attr_spec__Group_1__0 ) ) );", 11, 17, input);

                                    throw nvae;
                                }
                            }
                            else if ( (LA11_20==19) ) {
                                int LA11_24 = input.LA(6);

                                if ( (LA11_24==RULE_ID) ) {
                                    int LA11_17 = input.LA(7);

                                    if ( (LA11_17==EOF||LA11_17==29) ) {
                                        alt11=2;
                                    }
                                    else if ( (LA11_17==52) ) {
                                        alt11=1;
                                    }
                                    else {
                                        if (backtracking>0) {failed=true; return ;}
                                        NoViableAltException nvae =
                                            new NoViableAltException("2237:1: rule__Readonly_attr_spec__Alternatives : ( ( ( rule__Readonly_attr_spec__Group_0__0 ) ) | ( ( rule__Readonly_attr_spec__Group_1__0 ) ) );", 11, 17, input);

                                        throw nvae;
                                    }
                                }
                                else {
                                    if (backtracking>0) {failed=true; return ;}
                                    NoViableAltException nvae =
                                        new NoViableAltException("2237:1: rule__Readonly_attr_spec__Alternatives : ( ( ( rule__Readonly_attr_spec__Group_0__0 ) ) | ( ( rule__Readonly_attr_spec__Group_1__0 ) ) );", 11, 24, input);

                                    throw nvae;
                                }
                            }
                            else {
                                if (backtracking>0) {failed=true; return ;}
                                NoViableAltException nvae =
                                    new NoViableAltException("2237:1: rule__Readonly_attr_spec__Alternatives : ( ( ( rule__Readonly_attr_spec__Group_0__0 ) ) | ( ( rule__Readonly_attr_spec__Group_1__0 ) ) );", 11, 20, input);

                                throw nvae;
                            }
                        }
                        else if ( (LA11_5==18) ) {
                            int LA11_21 = input.LA(5);

                            if ( (LA11_21==RULE_ID) ) {
                                int LA11_17 = input.LA(6);

                                if ( (LA11_17==EOF||LA11_17==29) ) {
                                    alt11=2;
                                }
                                else if ( (LA11_17==52) ) {
                                    alt11=1;
                                }
                                else {
                                    if (backtracking>0) {failed=true; return ;}
                                    NoViableAltException nvae =
                                        new NoViableAltException("2237:1: rule__Readonly_attr_spec__Alternatives : ( ( ( rule__Readonly_attr_spec__Group_0__0 ) ) | ( ( rule__Readonly_attr_spec__Group_1__0 ) ) );", 11, 17, input);

                                    throw nvae;
                                }
                            }
                            else {
                                if (backtracking>0) {failed=true; return ;}
                                NoViableAltException nvae =
                                    new NoViableAltException("2237:1: rule__Readonly_attr_spec__Alternatives : ( ( ( rule__Readonly_attr_spec__Group_0__0 ) ) | ( ( rule__Readonly_attr_spec__Group_1__0 ) ) );", 11, 21, input);

                                throw nvae;
                            }
                        }
                        else {
                            if (backtracking>0) {failed=true; return ;}
                            NoViableAltException nvae =
                                new NoViableAltException("2237:1: rule__Readonly_attr_spec__Alternatives : ( ( ( rule__Readonly_attr_spec__Group_0__0 ) ) | ( ( rule__Readonly_attr_spec__Group_1__0 ) ) );", 11, 5, input);

                            throw nvae;
                        }
                        }
                        break;
                    case 16:
                        {
                        int LA11_6 = input.LA(4);

                        if ( (LA11_6==RULE_ID) ) {
                            int LA11_17 = input.LA(5);

                            if ( (LA11_17==EOF||LA11_17==29) ) {
                                alt11=2;
                            }
                            else if ( (LA11_17==52) ) {
                                alt11=1;
                            }
                            else {
                                if (backtracking>0) {failed=true; return ;}
                                NoViableAltException nvae =
                                    new NoViableAltException("2237:1: rule__Readonly_attr_spec__Alternatives : ( ( ( rule__Readonly_attr_spec__Group_0__0 ) ) | ( ( rule__Readonly_attr_spec__Group_1__0 ) ) );", 11, 17, input);

                                throw nvae;
                            }
                        }
                        else {
                            if (backtracking>0) {failed=true; return ;}
                            NoViableAltException nvae =
                                new NoViableAltException("2237:1: rule__Readonly_attr_spec__Alternatives : ( ( ( rule__Readonly_attr_spec__Group_0__0 ) ) | ( ( rule__Readonly_attr_spec__Group_1__0 ) ) );", 11, 6, input);

                            throw nvae;
                        }
                        }
                        break;
                    case 17:
                        {
                        int LA11_7 = input.LA(4);

                        if ( (LA11_7==RULE_ID) ) {
                            int LA11_17 = input.LA(5);

                            if ( (LA11_17==EOF||LA11_17==29) ) {
                                alt11=2;
                            }
                            else if ( (LA11_17==52) ) {
                                alt11=1;
                            }
                            else {
                                if (backtracking>0) {failed=true; return ;}
                                NoViableAltException nvae =
                                    new NoViableAltException("2237:1: rule__Readonly_attr_spec__Alternatives : ( ( ( rule__Readonly_attr_spec__Group_0__0 ) ) | ( ( rule__Readonly_attr_spec__Group_1__0 ) ) );", 11, 17, input);

                                throw nvae;
                            }
                        }
                        else {
                            if (backtracking>0) {failed=true; return ;}
                            NoViableAltException nvae =
                                new NoViableAltException("2237:1: rule__Readonly_attr_spec__Alternatives : ( ( ( rule__Readonly_attr_spec__Group_0__0 ) ) | ( ( rule__Readonly_attr_spec__Group_1__0 ) ) );", 11, 7, input);

                            throw nvae;
                        }
                        }
                        break;
                    case 20:
                        {
                        int LA11_8 = input.LA(4);

                        if ( (LA11_8==RULE_ID) ) {
                            int LA11_17 = input.LA(5);

                            if ( (LA11_17==EOF||LA11_17==29) ) {
                                alt11=2;
                            }
                            else if ( (LA11_17==52) ) {
                                alt11=1;
                            }
                            else {
                                if (backtracking>0) {failed=true; return ;}
                                NoViableAltException nvae =
                                    new NoViableAltException("2237:1: rule__Readonly_attr_spec__Alternatives : ( ( ( rule__Readonly_attr_spec__Group_0__0 ) ) | ( ( rule__Readonly_attr_spec__Group_1__0 ) ) );", 11, 17, input);

                                throw nvae;
                            }
                        }
                        else {
                            if (backtracking>0) {failed=true; return ;}
                            NoViableAltException nvae =
                                new NoViableAltException("2237:1: rule__Readonly_attr_spec__Alternatives : ( ( ( rule__Readonly_attr_spec__Group_0__0 ) ) | ( ( rule__Readonly_attr_spec__Group_1__0 ) ) );", 11, 8, input);

                            throw nvae;
                        }
                        }
                        break;
                    case 21:
                        {
                        int LA11_9 = input.LA(4);

                        if ( (LA11_9==RULE_ID) ) {
                            int LA11_17 = input.LA(5);

                            if ( (LA11_17==EOF||LA11_17==29) ) {
                                alt11=2;
                            }
                            else if ( (LA11_17==52) ) {
                                alt11=1;
                            }
                            else {
                                if (backtracking>0) {failed=true; return ;}
                                NoViableAltException nvae =
                                    new NoViableAltException("2237:1: rule__Readonly_attr_spec__Alternatives : ( ( ( rule__Readonly_attr_spec__Group_0__0 ) ) | ( ( rule__Readonly_attr_spec__Group_1__0 ) ) );", 11, 17, input);

                                throw nvae;
                            }
                        }
                        else {
                            if (backtracking>0) {failed=true; return ;}
                            NoViableAltException nvae =
                                new NoViableAltException("2237:1: rule__Readonly_attr_spec__Alternatives : ( ( ( rule__Readonly_attr_spec__Group_0__0 ) ) | ( ( rule__Readonly_attr_spec__Group_1__0 ) ) );", 11, 9, input);

                            throw nvae;
                        }
                        }
                        break;
                    case 22:
                        {
                        int LA11_10 = input.LA(4);

                        if ( (LA11_10==RULE_ID) ) {
                            int LA11_17 = input.LA(5);

                            if ( (LA11_17==EOF||LA11_17==29) ) {
                                alt11=2;
                            }
                            else if ( (LA11_17==52) ) {
                                alt11=1;
                            }
                            else {
                                if (backtracking>0) {failed=true; return ;}
                                NoViableAltException nvae =
                                    new NoViableAltException("2237:1: rule__Readonly_attr_spec__Alternatives : ( ( ( rule__Readonly_attr_spec__Group_0__0 ) ) | ( ( rule__Readonly_attr_spec__Group_1__0 ) ) );", 11, 17, input);

                                throw nvae;
                            }
                        }
                        else {
                            if (backtracking>0) {failed=true; return ;}
                            NoViableAltException nvae =
                                new NoViableAltException("2237:1: rule__Readonly_attr_spec__Alternatives : ( ( ( rule__Readonly_attr_spec__Group_0__0 ) ) | ( ( rule__Readonly_attr_spec__Group_1__0 ) ) );", 11, 10, input);

                            throw nvae;
                        }
                        }
                        break;
                    case 23:
                        {
                        int LA11_11 = input.LA(4);

                        if ( (LA11_11==RULE_ID) ) {
                            int LA11_17 = input.LA(5);

                            if ( (LA11_17==EOF||LA11_17==29) ) {
                                alt11=2;
                            }
                            else if ( (LA11_17==52) ) {
                                alt11=1;
                            }
                            else {
                                if (backtracking>0) {failed=true; return ;}
                                NoViableAltException nvae =
                                    new NoViableAltException("2237:1: rule__Readonly_attr_spec__Alternatives : ( ( ( rule__Readonly_attr_spec__Group_0__0 ) ) | ( ( rule__Readonly_attr_spec__Group_1__0 ) ) );", 11, 17, input);

                                throw nvae;
                            }
                        }
                        else {
                            if (backtracking>0) {failed=true; return ;}
                            NoViableAltException nvae =
                                new NoViableAltException("2237:1: rule__Readonly_attr_spec__Alternatives : ( ( ( rule__Readonly_attr_spec__Group_0__0 ) ) | ( ( rule__Readonly_attr_spec__Group_1__0 ) ) );", 11, 11, input);

                            throw nvae;
                        }
                        }
                        break;
                    case 24:
                        {
                        int LA11_12 = input.LA(4);

                        if ( (LA11_12==RULE_ID) ) {
                            int LA11_17 = input.LA(5);

                            if ( (LA11_17==EOF||LA11_17==29) ) {
                                alt11=2;
                            }
                            else if ( (LA11_17==52) ) {
                                alt11=1;
                            }
                            else {
                                if (backtracking>0) {failed=true; return ;}
                                NoViableAltException nvae =
                                    new NoViableAltException("2237:1: rule__Readonly_attr_spec__Alternatives : ( ( ( rule__Readonly_attr_spec__Group_0__0 ) ) | ( ( rule__Readonly_attr_spec__Group_1__0 ) ) );", 11, 17, input);

                                throw nvae;
                            }
                        }
                        else {
                            if (backtracking>0) {failed=true; return ;}
                            NoViableAltException nvae =
                                new NoViableAltException("2237:1: rule__Readonly_attr_spec__Alternatives : ( ( ( rule__Readonly_attr_spec__Group_0__0 ) ) | ( ( rule__Readonly_attr_spec__Group_1__0 ) ) );", 11, 12, input);

                            throw nvae;
                        }
                        }
                        break;
                    case 25:
                        {
                        int LA11_13 = input.LA(4);

                        if ( (LA11_13==RULE_ID) ) {
                            int LA11_17 = input.LA(5);

                            if ( (LA11_17==EOF||LA11_17==29) ) {
                                alt11=2;
                            }
                            else if ( (LA11_17==52) ) {
                                alt11=1;
                            }
                            else {
                                if (backtracking>0) {failed=true; return ;}
                                NoViableAltException nvae =
                                    new NoViableAltException("2237:1: rule__Readonly_attr_spec__Alternatives : ( ( ( rule__Readonly_attr_spec__Group_0__0 ) ) | ( ( rule__Readonly_attr_spec__Group_1__0 ) ) );", 11, 17, input);

                                throw nvae;
                            }
                        }
                        else {
                            if (backtracking>0) {failed=true; return ;}
                            NoViableAltException nvae =
                                new NoViableAltException("2237:1: rule__Readonly_attr_spec__Alternatives : ( ( ( rule__Readonly_attr_spec__Group_0__0 ) ) | ( ( rule__Readonly_attr_spec__Group_1__0 ) ) );", 11, 13, input);

                            throw nvae;
                        }
                        }
                        break;
                    case 26:
                        {
                        int LA11_14 = input.LA(4);

                        if ( (LA11_14==RULE_ID) ) {
                            int LA11_17 = input.LA(5);

                            if ( (LA11_17==EOF||LA11_17==29) ) {
                                alt11=2;
                            }
                            else if ( (LA11_17==52) ) {
                                alt11=1;
                            }
                            else {
                                if (backtracking>0) {failed=true; return ;}
                                NoViableAltException nvae =
                                    new NoViableAltException("2237:1: rule__Readonly_attr_spec__Alternatives : ( ( ( rule__Readonly_attr_spec__Group_0__0 ) ) | ( ( rule__Readonly_attr_spec__Group_1__0 ) ) );", 11, 17, input);

                                throw nvae;
                            }
                        }
                        else {
                            if (backtracking>0) {failed=true; return ;}
                            NoViableAltException nvae =
                                new NoViableAltException("2237:1: rule__Readonly_attr_spec__Alternatives : ( ( ( rule__Readonly_attr_spec__Group_0__0 ) ) | ( ( rule__Readonly_attr_spec__Group_1__0 ) ) );", 11, 14, input);

                            throw nvae;
                        }
                        }
                        break;
                    case 27:
                        {
                        int LA11_15 = input.LA(4);

                        if ( (LA11_15==RULE_ID) ) {
                            int LA11_17 = input.LA(5);

                            if ( (LA11_17==EOF||LA11_17==29) ) {
                                alt11=2;
                            }
                            else if ( (LA11_17==52) ) {
                                alt11=1;
                            }
                            else {
                                if (backtracking>0) {failed=true; return ;}
                                NoViableAltException nvae =
                                    new NoViableAltException("2237:1: rule__Readonly_attr_spec__Alternatives : ( ( ( rule__Readonly_attr_spec__Group_0__0 ) ) | ( ( rule__Readonly_attr_spec__Group_1__0 ) ) );", 11, 17, input);

                                throw nvae;
                            }
                        }
                        else {
                            if (backtracking>0) {failed=true; return ;}
                            NoViableAltException nvae =
                                new NoViableAltException("2237:1: rule__Readonly_attr_spec__Alternatives : ( ( ( rule__Readonly_attr_spec__Group_0__0 ) ) | ( ( rule__Readonly_attr_spec__Group_1__0 ) ) );", 11, 15, input);

                            throw nvae;
                        }
                        }
                        break;
                    case RULE_ID:
                        {
                        int LA11_16 = input.LA(4);

                        if ( (LA11_16==RULE_ID) ) {
                            int LA11_17 = input.LA(5);

                            if ( (LA11_17==EOF||LA11_17==29) ) {
                                alt11=2;
                            }
                            else if ( (LA11_17==52) ) {
                                alt11=1;
                            }
                            else {
                                if (backtracking>0) {failed=true; return ;}
                                NoViableAltException nvae =
                                    new NoViableAltException("2237:1: rule__Readonly_attr_spec__Alternatives : ( ( ( rule__Readonly_attr_spec__Group_0__0 ) ) | ( ( rule__Readonly_attr_spec__Group_1__0 ) ) );", 11, 17, input);

                                throw nvae;
                            }
                        }
                        else {
                            if (backtracking>0) {failed=true; return ;}
                            NoViableAltException nvae =
                                new NoViableAltException("2237:1: rule__Readonly_attr_spec__Alternatives : ( ( ( rule__Readonly_attr_spec__Group_0__0 ) ) | ( ( rule__Readonly_attr_spec__Group_1__0 ) ) );", 11, 16, input);

                            throw nvae;
                        }
                        }
                        break;
                    default:
                        if (backtracking>0) {failed=true; return ;}
                        NoViableAltException nvae =
                            new NoViableAltException("2237:1: rule__Readonly_attr_spec__Alternatives : ( ( ( rule__Readonly_attr_spec__Group_0__0 ) ) | ( ( rule__Readonly_attr_spec__Group_1__0 ) ) );", 11, 2, input);

                        throw nvae;
                    }

                }
                else {
                    if (backtracking>0) {failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("2237:1: rule__Readonly_attr_spec__Alternatives : ( ( ( rule__Readonly_attr_spec__Group_0__0 ) ) | ( ( rule__Readonly_attr_spec__Group_1__0 ) ) );", 11, 1, input);

                    throw nvae;
                }
            }
            else {
                if (backtracking>0) {failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("2237:1: rule__Readonly_attr_spec__Alternatives : ( ( ( rule__Readonly_attr_spec__Group_0__0 ) ) | ( ( rule__Readonly_attr_spec__Group_1__0 ) ) );", 11, 0, input);

                throw nvae;
            }
            switch (alt11) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2242:1: ( ( rule__Readonly_attr_spec__Group_0__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2242:1: ( ( rule__Readonly_attr_spec__Group_0__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2243:1: ( rule__Readonly_attr_spec__Group_0__0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getReadonly_attr_specAccess().getGroup_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2244:1: ( rule__Readonly_attr_spec__Group_0__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2244:2: rule__Readonly_attr_spec__Group_0__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_0__0_in_rule__Readonly_attr_spec__Alternatives4741);
                    rule__Readonly_attr_spec__Group_0__0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getReadonly_attr_specAccess().getGroup_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2248:6: ( ( rule__Readonly_attr_spec__Group_1__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2248:6: ( ( rule__Readonly_attr_spec__Group_1__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2249:1: ( rule__Readonly_attr_spec__Group_1__0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getReadonly_attr_specAccess().getGroup_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2250:1: ( rule__Readonly_attr_spec__Group_1__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2250:2: rule__Readonly_attr_spec__Group_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_1__0_in_rule__Readonly_attr_spec__Alternatives4759);
                    rule__Readonly_attr_spec__Group_1__0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getReadonly_attr_specAccess().getGroup_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Readonly_attr_spec__Alternatives


    // $ANTLR start rule__Readonly_attr_spec__Alternatives_0_2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2259:1: rule__Readonly_attr_spec__Alternatives_0_2 : ( ( ( rule__Readonly_attr_spec__ContainedTypeAssignment_0_2_0 ) ) | ( ( rule__Readonly_attr_spec__SharedTypeAssignment_0_2_1 ) ) );
    public final void rule__Readonly_attr_spec__Alternatives_0_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2263:1: ( ( ( rule__Readonly_attr_spec__ContainedTypeAssignment_0_2_0 ) ) | ( ( rule__Readonly_attr_spec__SharedTypeAssignment_0_2_1 ) ) )
            int alt12=2;
            int LA12_0 = input.LA(1);

            if ( ((LA12_0>=16 && LA12_0<=27)||LA12_0==74) ) {
                alt12=1;
            }
            else if ( (LA12_0==RULE_ID) ) {
                alt12=2;
            }
            else {
                if (backtracking>0) {failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("2259:1: rule__Readonly_attr_spec__Alternatives_0_2 : ( ( ( rule__Readonly_attr_spec__ContainedTypeAssignment_0_2_0 ) ) | ( ( rule__Readonly_attr_spec__SharedTypeAssignment_0_2_1 ) ) );", 12, 0, input);

                throw nvae;
            }
            switch (alt12) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2264:1: ( ( rule__Readonly_attr_spec__ContainedTypeAssignment_0_2_0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2264:1: ( ( rule__Readonly_attr_spec__ContainedTypeAssignment_0_2_0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2265:1: ( rule__Readonly_attr_spec__ContainedTypeAssignment_0_2_0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getReadonly_attr_specAccess().getContainedTypeAssignment_0_2_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2266:1: ( rule__Readonly_attr_spec__ContainedTypeAssignment_0_2_0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2266:2: rule__Readonly_attr_spec__ContainedTypeAssignment_0_2_0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__ContainedTypeAssignment_0_2_0_in_rule__Readonly_attr_spec__Alternatives_0_24792);
                    rule__Readonly_attr_spec__ContainedTypeAssignment_0_2_0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getReadonly_attr_specAccess().getContainedTypeAssignment_0_2_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2270:6: ( ( rule__Readonly_attr_spec__SharedTypeAssignment_0_2_1 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2270:6: ( ( rule__Readonly_attr_spec__SharedTypeAssignment_0_2_1 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2271:1: ( rule__Readonly_attr_spec__SharedTypeAssignment_0_2_1 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getReadonly_attr_specAccess().getSharedTypeAssignment_0_2_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2272:1: ( rule__Readonly_attr_spec__SharedTypeAssignment_0_2_1 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2272:2: rule__Readonly_attr_spec__SharedTypeAssignment_0_2_1
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__SharedTypeAssignment_0_2_1_in_rule__Readonly_attr_spec__Alternatives_0_24810);
                    rule__Readonly_attr_spec__SharedTypeAssignment_0_2_1();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getReadonly_attr_specAccess().getSharedTypeAssignment_0_2_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Readonly_attr_spec__Alternatives_0_2


    // $ANTLR start rule__Readonly_attr_spec__Alternatives_1_2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2281:1: rule__Readonly_attr_spec__Alternatives_1_2 : ( ( ( rule__Readonly_attr_spec__ContainedTypeAssignment_1_2_0 ) ) | ( ( rule__Readonly_attr_spec__SharedTypeAssignment_1_2_1 ) ) );
    public final void rule__Readonly_attr_spec__Alternatives_1_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2285:1: ( ( ( rule__Readonly_attr_spec__ContainedTypeAssignment_1_2_0 ) ) | ( ( rule__Readonly_attr_spec__SharedTypeAssignment_1_2_1 ) ) )
            int alt13=2;
            int LA13_0 = input.LA(1);

            if ( ((LA13_0>=16 && LA13_0<=27)||LA13_0==74) ) {
                alt13=1;
            }
            else if ( (LA13_0==RULE_ID) ) {
                alt13=2;
            }
            else {
                if (backtracking>0) {failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("2281:1: rule__Readonly_attr_spec__Alternatives_1_2 : ( ( ( rule__Readonly_attr_spec__ContainedTypeAssignment_1_2_0 ) ) | ( ( rule__Readonly_attr_spec__SharedTypeAssignment_1_2_1 ) ) );", 13, 0, input);

                throw nvae;
            }
            switch (alt13) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2286:1: ( ( rule__Readonly_attr_spec__ContainedTypeAssignment_1_2_0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2286:1: ( ( rule__Readonly_attr_spec__ContainedTypeAssignment_1_2_0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2287:1: ( rule__Readonly_attr_spec__ContainedTypeAssignment_1_2_0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getReadonly_attr_specAccess().getContainedTypeAssignment_1_2_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2288:1: ( rule__Readonly_attr_spec__ContainedTypeAssignment_1_2_0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2288:2: rule__Readonly_attr_spec__ContainedTypeAssignment_1_2_0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__ContainedTypeAssignment_1_2_0_in_rule__Readonly_attr_spec__Alternatives_1_24843);
                    rule__Readonly_attr_spec__ContainedTypeAssignment_1_2_0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getReadonly_attr_specAccess().getContainedTypeAssignment_1_2_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2292:6: ( ( rule__Readonly_attr_spec__SharedTypeAssignment_1_2_1 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2292:6: ( ( rule__Readonly_attr_spec__SharedTypeAssignment_1_2_1 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2293:1: ( rule__Readonly_attr_spec__SharedTypeAssignment_1_2_1 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getReadonly_attr_specAccess().getSharedTypeAssignment_1_2_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2294:1: ( rule__Readonly_attr_spec__SharedTypeAssignment_1_2_1 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2294:2: rule__Readonly_attr_spec__SharedTypeAssignment_1_2_1
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__SharedTypeAssignment_1_2_1_in_rule__Readonly_attr_spec__Alternatives_1_24861);
                    rule__Readonly_attr_spec__SharedTypeAssignment_1_2_1();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getReadonly_attr_specAccess().getSharedTypeAssignment_1_2_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Readonly_attr_spec__Alternatives_1_2


    // $ANTLR start rule__Attr_spec__Alternatives
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2303:1: rule__Attr_spec__Alternatives : ( ( ( rule__Attr_spec__Group_0__0 ) ) | ( ( rule__Attr_spec__Group_1__0 ) ) );
    public final void rule__Attr_spec__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2307:1: ( ( ( rule__Attr_spec__Group_0__0 ) ) | ( ( rule__Attr_spec__Group_1__0 ) ) )
            int alt14=2;
            int LA14_0 = input.LA(1);

            if ( (LA14_0==54) ) {
                switch ( input.LA(2) ) {
                case 18:
                    {
                    int LA14_2 = input.LA(3);

                    if ( (LA14_2==RULE_ID) ) {
                        int LA14_16 = input.LA(4);

                        if ( ((LA14_16>=55 && LA14_16<=56)) ) {
                            alt14=1;
                        }
                        else if ( (LA14_16==EOF||LA14_16==29) ) {
                            alt14=2;
                        }
                        else {
                            if (backtracking>0) {failed=true; return ;}
                            NoViableAltException nvae =
                                new NoViableAltException("2303:1: rule__Attr_spec__Alternatives : ( ( ( rule__Attr_spec__Group_0__0 ) ) | ( ( rule__Attr_spec__Group_1__0 ) ) );", 14, 16, input);

                            throw nvae;
                        }
                    }
                    else {
                        if (backtracking>0) {failed=true; return ;}
                        NoViableAltException nvae =
                            new NoViableAltException("2303:1: rule__Attr_spec__Alternatives : ( ( ( rule__Attr_spec__Group_0__0 ) ) | ( ( rule__Attr_spec__Group_1__0 ) ) );", 14, 2, input);

                        throw nvae;
                    }
                    }
                    break;
                case 19:
                    {
                    switch ( input.LA(3) ) {
                    case 19:
                        {
                        int LA14_17 = input.LA(4);

                        if ( (LA14_17==RULE_ID) ) {
                            int LA14_16 = input.LA(5);

                            if ( ((LA14_16>=55 && LA14_16<=56)) ) {
                                alt14=1;
                            }
                            else if ( (LA14_16==EOF||LA14_16==29) ) {
                                alt14=2;
                            }
                            else {
                                if (backtracking>0) {failed=true; return ;}
                                NoViableAltException nvae =
                                    new NoViableAltException("2303:1: rule__Attr_spec__Alternatives : ( ( ( rule__Attr_spec__Group_0__0 ) ) | ( ( rule__Attr_spec__Group_1__0 ) ) );", 14, 16, input);

                                throw nvae;
                            }
                        }
                        else {
                            if (backtracking>0) {failed=true; return ;}
                            NoViableAltException nvae =
                                new NoViableAltException("2303:1: rule__Attr_spec__Alternatives : ( ( ( rule__Attr_spec__Group_0__0 ) ) | ( ( rule__Attr_spec__Group_1__0 ) ) );", 14, 17, input);

                            throw nvae;
                        }
                        }
                        break;
                    case RULE_ID:
                        {
                        int LA14_16 = input.LA(4);

                        if ( ((LA14_16>=55 && LA14_16<=56)) ) {
                            alt14=1;
                        }
                        else if ( (LA14_16==EOF||LA14_16==29) ) {
                            alt14=2;
                        }
                        else {
                            if (backtracking>0) {failed=true; return ;}
                            NoViableAltException nvae =
                                new NoViableAltException("2303:1: rule__Attr_spec__Alternatives : ( ( ( rule__Attr_spec__Group_0__0 ) ) | ( ( rule__Attr_spec__Group_1__0 ) ) );", 14, 16, input);

                            throw nvae;
                        }
                        }
                        break;
                    case 17:
                        {
                        int LA14_18 = input.LA(4);

                        if ( (LA14_18==RULE_ID) ) {
                            int LA14_16 = input.LA(5);

                            if ( ((LA14_16>=55 && LA14_16<=56)) ) {
                                alt14=1;
                            }
                            else if ( (LA14_16==EOF||LA14_16==29) ) {
                                alt14=2;
                            }
                            else {
                                if (backtracking>0) {failed=true; return ;}
                                NoViableAltException nvae =
                                    new NoViableAltException("2303:1: rule__Attr_spec__Alternatives : ( ( ( rule__Attr_spec__Group_0__0 ) ) | ( ( rule__Attr_spec__Group_1__0 ) ) );", 14, 16, input);

                                throw nvae;
                            }
                        }
                        else {
                            if (backtracking>0) {failed=true; return ;}
                            NoViableAltException nvae =
                                new NoViableAltException("2303:1: rule__Attr_spec__Alternatives : ( ( ( rule__Attr_spec__Group_0__0 ) ) | ( ( rule__Attr_spec__Group_1__0 ) ) );", 14, 18, input);

                            throw nvae;
                        }
                        }
                        break;
                    default:
                        if (backtracking>0) {failed=true; return ;}
                        NoViableAltException nvae =
                            new NoViableAltException("2303:1: rule__Attr_spec__Alternatives : ( ( ( rule__Attr_spec__Group_0__0 ) ) | ( ( rule__Attr_spec__Group_1__0 ) ) );", 14, 3, input);

                        throw nvae;
                    }

                    }
                    break;
                case 74:
                    {
                    int LA14_4 = input.LA(3);

                    if ( (LA14_4==18) ) {
                        int LA14_19 = input.LA(4);

                        if ( (LA14_19==RULE_ID) ) {
                            int LA14_16 = input.LA(5);

                            if ( ((LA14_16>=55 && LA14_16<=56)) ) {
                                alt14=1;
                            }
                            else if ( (LA14_16==EOF||LA14_16==29) ) {
                                alt14=2;
                            }
                            else {
                                if (backtracking>0) {failed=true; return ;}
                                NoViableAltException nvae =
                                    new NoViableAltException("2303:1: rule__Attr_spec__Alternatives : ( ( ( rule__Attr_spec__Group_0__0 ) ) | ( ( rule__Attr_spec__Group_1__0 ) ) );", 14, 16, input);

                                throw nvae;
                            }
                        }
                        else {
                            if (backtracking>0) {failed=true; return ;}
                            NoViableAltException nvae =
                                new NoViableAltException("2303:1: rule__Attr_spec__Alternatives : ( ( ( rule__Attr_spec__Group_0__0 ) ) | ( ( rule__Attr_spec__Group_1__0 ) ) );", 14, 19, input);

                            throw nvae;
                        }
                    }
                    else if ( (LA14_4==19) ) {
                        int LA14_20 = input.LA(4);

                        if ( (LA14_20==19) ) {
                            int LA14_23 = input.LA(5);

                            if ( (LA14_23==RULE_ID) ) {
                                int LA14_16 = input.LA(6);

                                if ( ((LA14_16>=55 && LA14_16<=56)) ) {
                                    alt14=1;
                                }
                                else if ( (LA14_16==EOF||LA14_16==29) ) {
                                    alt14=2;
                                }
                                else {
                                    if (backtracking>0) {failed=true; return ;}
                                    NoViableAltException nvae =
                                        new NoViableAltException("2303:1: rule__Attr_spec__Alternatives : ( ( ( rule__Attr_spec__Group_0__0 ) ) | ( ( rule__Attr_spec__Group_1__0 ) ) );", 14, 16, input);

                                    throw nvae;
                                }
                            }
                            else {
                                if (backtracking>0) {failed=true; return ;}
                                NoViableAltException nvae =
                                    new NoViableAltException("2303:1: rule__Attr_spec__Alternatives : ( ( ( rule__Attr_spec__Group_0__0 ) ) | ( ( rule__Attr_spec__Group_1__0 ) ) );", 14, 23, input);

                                throw nvae;
                            }
                        }
                        else if ( (LA14_20==RULE_ID) ) {
                            int LA14_16 = input.LA(5);

                            if ( ((LA14_16>=55 && LA14_16<=56)) ) {
                                alt14=1;
                            }
                            else if ( (LA14_16==EOF||LA14_16==29) ) {
                                alt14=2;
                            }
                            else {
                                if (backtracking>0) {failed=true; return ;}
                                NoViableAltException nvae =
                                    new NoViableAltException("2303:1: rule__Attr_spec__Alternatives : ( ( ( rule__Attr_spec__Group_0__0 ) ) | ( ( rule__Attr_spec__Group_1__0 ) ) );", 14, 16, input);

                                throw nvae;
                            }
                        }
                        else {
                            if (backtracking>0) {failed=true; return ;}
                            NoViableAltException nvae =
                                new NoViableAltException("2303:1: rule__Attr_spec__Alternatives : ( ( ( rule__Attr_spec__Group_0__0 ) ) | ( ( rule__Attr_spec__Group_1__0 ) ) );", 14, 20, input);

                            throw nvae;
                        }
                    }
                    else {
                        if (backtracking>0) {failed=true; return ;}
                        NoViableAltException nvae =
                            new NoViableAltException("2303:1: rule__Attr_spec__Alternatives : ( ( ( rule__Attr_spec__Group_0__0 ) ) | ( ( rule__Attr_spec__Group_1__0 ) ) );", 14, 4, input);

                        throw nvae;
                    }
                    }
                    break;
                case 16:
                    {
                    int LA14_5 = input.LA(3);

                    if ( (LA14_5==RULE_ID) ) {
                        int LA14_16 = input.LA(4);

                        if ( ((LA14_16>=55 && LA14_16<=56)) ) {
                            alt14=1;
                        }
                        else if ( (LA14_16==EOF||LA14_16==29) ) {
                            alt14=2;
                        }
                        else {
                            if (backtracking>0) {failed=true; return ;}
                            NoViableAltException nvae =
                                new NoViableAltException("2303:1: rule__Attr_spec__Alternatives : ( ( ( rule__Attr_spec__Group_0__0 ) ) | ( ( rule__Attr_spec__Group_1__0 ) ) );", 14, 16, input);

                            throw nvae;
                        }
                    }
                    else {
                        if (backtracking>0) {failed=true; return ;}
                        NoViableAltException nvae =
                            new NoViableAltException("2303:1: rule__Attr_spec__Alternatives : ( ( ( rule__Attr_spec__Group_0__0 ) ) | ( ( rule__Attr_spec__Group_1__0 ) ) );", 14, 5, input);

                        throw nvae;
                    }
                    }
                    break;
                case 17:
                    {
                    int LA14_6 = input.LA(3);

                    if ( (LA14_6==RULE_ID) ) {
                        int LA14_16 = input.LA(4);

                        if ( ((LA14_16>=55 && LA14_16<=56)) ) {
                            alt14=1;
                        }
                        else if ( (LA14_16==EOF||LA14_16==29) ) {
                            alt14=2;
                        }
                        else {
                            if (backtracking>0) {failed=true; return ;}
                            NoViableAltException nvae =
                                new NoViableAltException("2303:1: rule__Attr_spec__Alternatives : ( ( ( rule__Attr_spec__Group_0__0 ) ) | ( ( rule__Attr_spec__Group_1__0 ) ) );", 14, 16, input);

                            throw nvae;
                        }
                    }
                    else {
                        if (backtracking>0) {failed=true; return ;}
                        NoViableAltException nvae =
                            new NoViableAltException("2303:1: rule__Attr_spec__Alternatives : ( ( ( rule__Attr_spec__Group_0__0 ) ) | ( ( rule__Attr_spec__Group_1__0 ) ) );", 14, 6, input);

                        throw nvae;
                    }
                    }
                    break;
                case 20:
                    {
                    int LA14_7 = input.LA(3);

                    if ( (LA14_7==RULE_ID) ) {
                        int LA14_16 = input.LA(4);

                        if ( ((LA14_16>=55 && LA14_16<=56)) ) {
                            alt14=1;
                        }
                        else if ( (LA14_16==EOF||LA14_16==29) ) {
                            alt14=2;
                        }
                        else {
                            if (backtracking>0) {failed=true; return ;}
                            NoViableAltException nvae =
                                new NoViableAltException("2303:1: rule__Attr_spec__Alternatives : ( ( ( rule__Attr_spec__Group_0__0 ) ) | ( ( rule__Attr_spec__Group_1__0 ) ) );", 14, 16, input);

                            throw nvae;
                        }
                    }
                    else {
                        if (backtracking>0) {failed=true; return ;}
                        NoViableAltException nvae =
                            new NoViableAltException("2303:1: rule__Attr_spec__Alternatives : ( ( ( rule__Attr_spec__Group_0__0 ) ) | ( ( rule__Attr_spec__Group_1__0 ) ) );", 14, 7, input);

                        throw nvae;
                    }
                    }
                    break;
                case 21:
                    {
                    int LA14_8 = input.LA(3);

                    if ( (LA14_8==RULE_ID) ) {
                        int LA14_16 = input.LA(4);

                        if ( ((LA14_16>=55 && LA14_16<=56)) ) {
                            alt14=1;
                        }
                        else if ( (LA14_16==EOF||LA14_16==29) ) {
                            alt14=2;
                        }
                        else {
                            if (backtracking>0) {failed=true; return ;}
                            NoViableAltException nvae =
                                new NoViableAltException("2303:1: rule__Attr_spec__Alternatives : ( ( ( rule__Attr_spec__Group_0__0 ) ) | ( ( rule__Attr_spec__Group_1__0 ) ) );", 14, 16, input);

                            throw nvae;
                        }
                    }
                    else {
                        if (backtracking>0) {failed=true; return ;}
                        NoViableAltException nvae =
                            new NoViableAltException("2303:1: rule__Attr_spec__Alternatives : ( ( ( rule__Attr_spec__Group_0__0 ) ) | ( ( rule__Attr_spec__Group_1__0 ) ) );", 14, 8, input);

                        throw nvae;
                    }
                    }
                    break;
                case 22:
                    {
                    int LA14_9 = input.LA(3);

                    if ( (LA14_9==RULE_ID) ) {
                        int LA14_16 = input.LA(4);

                        if ( ((LA14_16>=55 && LA14_16<=56)) ) {
                            alt14=1;
                        }
                        else if ( (LA14_16==EOF||LA14_16==29) ) {
                            alt14=2;
                        }
                        else {
                            if (backtracking>0) {failed=true; return ;}
                            NoViableAltException nvae =
                                new NoViableAltException("2303:1: rule__Attr_spec__Alternatives : ( ( ( rule__Attr_spec__Group_0__0 ) ) | ( ( rule__Attr_spec__Group_1__0 ) ) );", 14, 16, input);

                            throw nvae;
                        }
                    }
                    else {
                        if (backtracking>0) {failed=true; return ;}
                        NoViableAltException nvae =
                            new NoViableAltException("2303:1: rule__Attr_spec__Alternatives : ( ( ( rule__Attr_spec__Group_0__0 ) ) | ( ( rule__Attr_spec__Group_1__0 ) ) );", 14, 9, input);

                        throw nvae;
                    }
                    }
                    break;
                case 23:
                    {
                    int LA14_10 = input.LA(3);

                    if ( (LA14_10==RULE_ID) ) {
                        int LA14_16 = input.LA(4);

                        if ( ((LA14_16>=55 && LA14_16<=56)) ) {
                            alt14=1;
                        }
                        else if ( (LA14_16==EOF||LA14_16==29) ) {
                            alt14=2;
                        }
                        else {
                            if (backtracking>0) {failed=true; return ;}
                            NoViableAltException nvae =
                                new NoViableAltException("2303:1: rule__Attr_spec__Alternatives : ( ( ( rule__Attr_spec__Group_0__0 ) ) | ( ( rule__Attr_spec__Group_1__0 ) ) );", 14, 16, input);

                            throw nvae;
                        }
                    }
                    else {
                        if (backtracking>0) {failed=true; return ;}
                        NoViableAltException nvae =
                            new NoViableAltException("2303:1: rule__Attr_spec__Alternatives : ( ( ( rule__Attr_spec__Group_0__0 ) ) | ( ( rule__Attr_spec__Group_1__0 ) ) );", 14, 10, input);

                        throw nvae;
                    }
                    }
                    break;
                case 24:
                    {
                    int LA14_11 = input.LA(3);

                    if ( (LA14_11==RULE_ID) ) {
                        int LA14_16 = input.LA(4);

                        if ( ((LA14_16>=55 && LA14_16<=56)) ) {
                            alt14=1;
                        }
                        else if ( (LA14_16==EOF||LA14_16==29) ) {
                            alt14=2;
                        }
                        else {
                            if (backtracking>0) {failed=true; return ;}
                            NoViableAltException nvae =
                                new NoViableAltException("2303:1: rule__Attr_spec__Alternatives : ( ( ( rule__Attr_spec__Group_0__0 ) ) | ( ( rule__Attr_spec__Group_1__0 ) ) );", 14, 16, input);

                            throw nvae;
                        }
                    }
                    else {
                        if (backtracking>0) {failed=true; return ;}
                        NoViableAltException nvae =
                            new NoViableAltException("2303:1: rule__Attr_spec__Alternatives : ( ( ( rule__Attr_spec__Group_0__0 ) ) | ( ( rule__Attr_spec__Group_1__0 ) ) );", 14, 11, input);

                        throw nvae;
                    }
                    }
                    break;
                case 25:
                    {
                    int LA14_12 = input.LA(3);

                    if ( (LA14_12==RULE_ID) ) {
                        int LA14_16 = input.LA(4);

                        if ( ((LA14_16>=55 && LA14_16<=56)) ) {
                            alt14=1;
                        }
                        else if ( (LA14_16==EOF||LA14_16==29) ) {
                            alt14=2;
                        }
                        else {
                            if (backtracking>0) {failed=true; return ;}
                            NoViableAltException nvae =
                                new NoViableAltException("2303:1: rule__Attr_spec__Alternatives : ( ( ( rule__Attr_spec__Group_0__0 ) ) | ( ( rule__Attr_spec__Group_1__0 ) ) );", 14, 16, input);

                            throw nvae;
                        }
                    }
                    else {
                        if (backtracking>0) {failed=true; return ;}
                        NoViableAltException nvae =
                            new NoViableAltException("2303:1: rule__Attr_spec__Alternatives : ( ( ( rule__Attr_spec__Group_0__0 ) ) | ( ( rule__Attr_spec__Group_1__0 ) ) );", 14, 12, input);

                        throw nvae;
                    }
                    }
                    break;
                case 26:
                    {
                    int LA14_13 = input.LA(3);

                    if ( (LA14_13==RULE_ID) ) {
                        int LA14_16 = input.LA(4);

                        if ( ((LA14_16>=55 && LA14_16<=56)) ) {
                            alt14=1;
                        }
                        else if ( (LA14_16==EOF||LA14_16==29) ) {
                            alt14=2;
                        }
                        else {
                            if (backtracking>0) {failed=true; return ;}
                            NoViableAltException nvae =
                                new NoViableAltException("2303:1: rule__Attr_spec__Alternatives : ( ( ( rule__Attr_spec__Group_0__0 ) ) | ( ( rule__Attr_spec__Group_1__0 ) ) );", 14, 16, input);

                            throw nvae;
                        }
                    }
                    else {
                        if (backtracking>0) {failed=true; return ;}
                        NoViableAltException nvae =
                            new NoViableAltException("2303:1: rule__Attr_spec__Alternatives : ( ( ( rule__Attr_spec__Group_0__0 ) ) | ( ( rule__Attr_spec__Group_1__0 ) ) );", 14, 13, input);

                        throw nvae;
                    }
                    }
                    break;
                case 27:
                    {
                    int LA14_14 = input.LA(3);

                    if ( (LA14_14==RULE_ID) ) {
                        int LA14_16 = input.LA(4);

                        if ( ((LA14_16>=55 && LA14_16<=56)) ) {
                            alt14=1;
                        }
                        else if ( (LA14_16==EOF||LA14_16==29) ) {
                            alt14=2;
                        }
                        else {
                            if (backtracking>0) {failed=true; return ;}
                            NoViableAltException nvae =
                                new NoViableAltException("2303:1: rule__Attr_spec__Alternatives : ( ( ( rule__Attr_spec__Group_0__0 ) ) | ( ( rule__Attr_spec__Group_1__0 ) ) );", 14, 16, input);

                            throw nvae;
                        }
                    }
                    else {
                        if (backtracking>0) {failed=true; return ;}
                        NoViableAltException nvae =
                            new NoViableAltException("2303:1: rule__Attr_spec__Alternatives : ( ( ( rule__Attr_spec__Group_0__0 ) ) | ( ( rule__Attr_spec__Group_1__0 ) ) );", 14, 14, input);

                        throw nvae;
                    }
                    }
                    break;
                case RULE_ID:
                    {
                    int LA14_15 = input.LA(3);

                    if ( (LA14_15==RULE_ID) ) {
                        int LA14_16 = input.LA(4);

                        if ( ((LA14_16>=55 && LA14_16<=56)) ) {
                            alt14=1;
                        }
                        else if ( (LA14_16==EOF||LA14_16==29) ) {
                            alt14=2;
                        }
                        else {
                            if (backtracking>0) {failed=true; return ;}
                            NoViableAltException nvae =
                                new NoViableAltException("2303:1: rule__Attr_spec__Alternatives : ( ( ( rule__Attr_spec__Group_0__0 ) ) | ( ( rule__Attr_spec__Group_1__0 ) ) );", 14, 16, input);

                            throw nvae;
                        }
                    }
                    else {
                        if (backtracking>0) {failed=true; return ;}
                        NoViableAltException nvae =
                            new NoViableAltException("2303:1: rule__Attr_spec__Alternatives : ( ( ( rule__Attr_spec__Group_0__0 ) ) | ( ( rule__Attr_spec__Group_1__0 ) ) );", 14, 15, input);

                        throw nvae;
                    }
                    }
                    break;
                default:
                    if (backtracking>0) {failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("2303:1: rule__Attr_spec__Alternatives : ( ( ( rule__Attr_spec__Group_0__0 ) ) | ( ( rule__Attr_spec__Group_1__0 ) ) );", 14, 1, input);

                    throw nvae;
                }

            }
            else {
                if (backtracking>0) {failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("2303:1: rule__Attr_spec__Alternatives : ( ( ( rule__Attr_spec__Group_0__0 ) ) | ( ( rule__Attr_spec__Group_1__0 ) ) );", 14, 0, input);

                throw nvae;
            }
            switch (alt14) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2308:1: ( ( rule__Attr_spec__Group_0__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2308:1: ( ( rule__Attr_spec__Group_0__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2309:1: ( rule__Attr_spec__Group_0__0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getAttr_specAccess().getGroup_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2310:1: ( rule__Attr_spec__Group_0__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2310:2: rule__Attr_spec__Group_0__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0__0_in_rule__Attr_spec__Alternatives4894);
                    rule__Attr_spec__Group_0__0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getAttr_specAccess().getGroup_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2314:6: ( ( rule__Attr_spec__Group_1__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2314:6: ( ( rule__Attr_spec__Group_1__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2315:1: ( rule__Attr_spec__Group_1__0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getAttr_specAccess().getGroup_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2316:1: ( rule__Attr_spec__Group_1__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2316:2: rule__Attr_spec__Group_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_1__0_in_rule__Attr_spec__Alternatives4912);
                    rule__Attr_spec__Group_1__0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getAttr_specAccess().getGroup_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Alternatives


    // $ANTLR start rule__Attr_spec__Alternatives_0_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2325:1: rule__Attr_spec__Alternatives_0_1 : ( ( ( rule__Attr_spec__ContainedTypeAssignment_0_1_0 ) ) | ( ( rule__Attr_spec__SharedTypeAssignment_0_1_1 ) ) );
    public final void rule__Attr_spec__Alternatives_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2329:1: ( ( ( rule__Attr_spec__ContainedTypeAssignment_0_1_0 ) ) | ( ( rule__Attr_spec__SharedTypeAssignment_0_1_1 ) ) )
            int alt15=2;
            int LA15_0 = input.LA(1);

            if ( ((LA15_0>=16 && LA15_0<=27)||LA15_0==74) ) {
                alt15=1;
            }
            else if ( (LA15_0==RULE_ID) ) {
                alt15=2;
            }
            else {
                if (backtracking>0) {failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("2325:1: rule__Attr_spec__Alternatives_0_1 : ( ( ( rule__Attr_spec__ContainedTypeAssignment_0_1_0 ) ) | ( ( rule__Attr_spec__SharedTypeAssignment_0_1_1 ) ) );", 15, 0, input);

                throw nvae;
            }
            switch (alt15) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2330:1: ( ( rule__Attr_spec__ContainedTypeAssignment_0_1_0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2330:1: ( ( rule__Attr_spec__ContainedTypeAssignment_0_1_0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2331:1: ( rule__Attr_spec__ContainedTypeAssignment_0_1_0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getAttr_specAccess().getContainedTypeAssignment_0_1_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2332:1: ( rule__Attr_spec__ContainedTypeAssignment_0_1_0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2332:2: rule__Attr_spec__ContainedTypeAssignment_0_1_0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__ContainedTypeAssignment_0_1_0_in_rule__Attr_spec__Alternatives_0_14945);
                    rule__Attr_spec__ContainedTypeAssignment_0_1_0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getAttr_specAccess().getContainedTypeAssignment_0_1_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2336:6: ( ( rule__Attr_spec__SharedTypeAssignment_0_1_1 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2336:6: ( ( rule__Attr_spec__SharedTypeAssignment_0_1_1 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2337:1: ( rule__Attr_spec__SharedTypeAssignment_0_1_1 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getAttr_specAccess().getSharedTypeAssignment_0_1_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2338:1: ( rule__Attr_spec__SharedTypeAssignment_0_1_1 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2338:2: rule__Attr_spec__SharedTypeAssignment_0_1_1
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__SharedTypeAssignment_0_1_1_in_rule__Attr_spec__Alternatives_0_14963);
                    rule__Attr_spec__SharedTypeAssignment_0_1_1();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getAttr_specAccess().getSharedTypeAssignment_0_1_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Alternatives_0_1


    // $ANTLR start rule__Attr_spec__Alternatives_0_3
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2347:1: rule__Attr_spec__Alternatives_0_3 : ( ( ( rule__Attr_spec__Group_0_3_0__0 ) ) | ( ( rule__Attr_spec__Group_0_3_1__0 ) ) );
    public final void rule__Attr_spec__Alternatives_0_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2351:1: ( ( ( rule__Attr_spec__Group_0_3_0__0 ) ) | ( ( rule__Attr_spec__Group_0_3_1__0 ) ) )
            int alt16=2;
            int LA16_0 = input.LA(1);

            if ( (LA16_0==55) ) {
                alt16=1;
            }
            else if ( (LA16_0==56) ) {
                alt16=2;
            }
            else {
                if (backtracking>0) {failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("2347:1: rule__Attr_spec__Alternatives_0_3 : ( ( ( rule__Attr_spec__Group_0_3_0__0 ) ) | ( ( rule__Attr_spec__Group_0_3_1__0 ) ) );", 16, 0, input);

                throw nvae;
            }
            switch (alt16) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2352:1: ( ( rule__Attr_spec__Group_0_3_0__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2352:1: ( ( rule__Attr_spec__Group_0_3_0__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2353:1: ( rule__Attr_spec__Group_0_3_0__0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getAttr_specAccess().getGroup_0_3_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2354:1: ( rule__Attr_spec__Group_0_3_0__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2354:2: rule__Attr_spec__Group_0_3_0__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0__0_in_rule__Attr_spec__Alternatives_0_34996);
                    rule__Attr_spec__Group_0_3_0__0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getAttr_specAccess().getGroup_0_3_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2358:6: ( ( rule__Attr_spec__Group_0_3_1__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2358:6: ( ( rule__Attr_spec__Group_0_3_1__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2359:1: ( rule__Attr_spec__Group_0_3_1__0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getAttr_specAccess().getGroup_0_3_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2360:1: ( rule__Attr_spec__Group_0_3_1__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2360:2: rule__Attr_spec__Group_0_3_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_1__0_in_rule__Attr_spec__Alternatives_0_35014);
                    rule__Attr_spec__Group_0_3_1__0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getAttr_specAccess().getGroup_0_3_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Alternatives_0_3


    // $ANTLR start rule__Attr_spec__Alternatives_1_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2369:1: rule__Attr_spec__Alternatives_1_1 : ( ( ( rule__Attr_spec__ContainedTypeAssignment_1_1_0 ) ) | ( ( rule__Attr_spec__SharedTypeAssignment_1_1_1 ) ) );
    public final void rule__Attr_spec__Alternatives_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2373:1: ( ( ( rule__Attr_spec__ContainedTypeAssignment_1_1_0 ) ) | ( ( rule__Attr_spec__SharedTypeAssignment_1_1_1 ) ) )
            int alt17=2;
            int LA17_0 = input.LA(1);

            if ( ((LA17_0>=16 && LA17_0<=27)||LA17_0==74) ) {
                alt17=1;
            }
            else if ( (LA17_0==RULE_ID) ) {
                alt17=2;
            }
            else {
                if (backtracking>0) {failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("2369:1: rule__Attr_spec__Alternatives_1_1 : ( ( ( rule__Attr_spec__ContainedTypeAssignment_1_1_0 ) ) | ( ( rule__Attr_spec__SharedTypeAssignment_1_1_1 ) ) );", 17, 0, input);

                throw nvae;
            }
            switch (alt17) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2374:1: ( ( rule__Attr_spec__ContainedTypeAssignment_1_1_0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2374:1: ( ( rule__Attr_spec__ContainedTypeAssignment_1_1_0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2375:1: ( rule__Attr_spec__ContainedTypeAssignment_1_1_0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getAttr_specAccess().getContainedTypeAssignment_1_1_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2376:1: ( rule__Attr_spec__ContainedTypeAssignment_1_1_0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2376:2: rule__Attr_spec__ContainedTypeAssignment_1_1_0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__ContainedTypeAssignment_1_1_0_in_rule__Attr_spec__Alternatives_1_15047);
                    rule__Attr_spec__ContainedTypeAssignment_1_1_0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getAttr_specAccess().getContainedTypeAssignment_1_1_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2380:6: ( ( rule__Attr_spec__SharedTypeAssignment_1_1_1 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2380:6: ( ( rule__Attr_spec__SharedTypeAssignment_1_1_1 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2381:1: ( rule__Attr_spec__SharedTypeAssignment_1_1_1 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getAttr_specAccess().getSharedTypeAssignment_1_1_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2382:1: ( rule__Attr_spec__SharedTypeAssignment_1_1_1 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2382:2: rule__Attr_spec__SharedTypeAssignment_1_1_1
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__SharedTypeAssignment_1_1_1_in_rule__Attr_spec__Alternatives_1_15065);
                    rule__Attr_spec__SharedTypeAssignment_1_1_1();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getAttr_specAccess().getSharedTypeAssignment_1_1_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Alternatives_1_1


    // $ANTLR start rule__Type_decl__Alternatives
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2391:1: rule__Type_decl__Alternatives : ( ( rulealias_type ) | ( rulestruct_type ) | ( ruleunion_type ) | ( ruleenum_type ) | ( ( rule__Type_decl__Group_4__0 ) ) | ( ruleconstr_forward_decl ) );
    public final void rule__Type_decl__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2395:1: ( ( rulealias_type ) | ( rulestruct_type ) | ( ruleunion_type ) | ( ruleenum_type ) | ( ( rule__Type_decl__Group_4__0 ) ) | ( ruleconstr_forward_decl ) )
            int alt18=6;
            switch ( input.LA(1) ) {
            case 59:
                {
                alt18=1;
                }
                break;
            case 62:
                {
                int LA18_2 = input.LA(2);

                if ( (LA18_2==RULE_ID) ) {
                    int LA18_6 = input.LA(3);

                    if ( (LA18_6==45) ) {
                        alt18=2;
                    }
                    else if ( (LA18_6==EOF||LA18_6==29) ) {
                        alt18=6;
                    }
                    else {
                        if (backtracking>0) {failed=true; return ;}
                        NoViableAltException nvae =
                            new NoViableAltException("2391:1: rule__Type_decl__Alternatives : ( ( rulealias_type ) | ( rulestruct_type ) | ( ruleunion_type ) | ( ruleenum_type ) | ( ( rule__Type_decl__Group_4__0 ) ) | ( ruleconstr_forward_decl ) );", 18, 6, input);

                        throw nvae;
                    }
                }
                else {
                    if (backtracking>0) {failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("2391:1: rule__Type_decl__Alternatives : ( ( rulealias_type ) | ( rulestruct_type ) | ( ruleunion_type ) | ( ruleenum_type ) | ( ( rule__Type_decl__Group_4__0 ) ) | ( ruleconstr_forward_decl ) );", 18, 2, input);

                    throw nvae;
                }
                }
                break;
            case 63:
                {
                int LA18_3 = input.LA(2);

                if ( (LA18_3==RULE_ID) ) {
                    int LA18_7 = input.LA(3);

                    if ( (LA18_7==64) ) {
                        alt18=3;
                    }
                    else if ( (LA18_7==EOF||LA18_7==29) ) {
                        alt18=6;
                    }
                    else {
                        if (backtracking>0) {failed=true; return ;}
                        NoViableAltException nvae =
                            new NoViableAltException("2391:1: rule__Type_decl__Alternatives : ( ( rulealias_type ) | ( rulestruct_type ) | ( ruleunion_type ) | ( ruleenum_type ) | ( ( rule__Type_decl__Group_4__0 ) ) | ( ruleconstr_forward_decl ) );", 18, 7, input);

                        throw nvae;
                    }
                }
                else {
                    if (backtracking>0) {failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("2391:1: rule__Type_decl__Alternatives : ( ( rulealias_type ) | ( rulestruct_type ) | ( ruleunion_type ) | ( ruleenum_type ) | ( ( rule__Type_decl__Group_4__0 ) ) | ( ruleconstr_forward_decl ) );", 18, 3, input);

                    throw nvae;
                }
                }
                break;
            case 67:
                {
                alt18=4;
                }
                break;
            case 58:
                {
                alt18=5;
                }
                break;
            default:
                if (backtracking>0) {failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("2391:1: rule__Type_decl__Alternatives : ( ( rulealias_type ) | ( rulestruct_type ) | ( ruleunion_type ) | ( ruleenum_type ) | ( ( rule__Type_decl__Group_4__0 ) ) | ( ruleconstr_forward_decl ) );", 18, 0, input);

                throw nvae;
            }

            switch (alt18) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2396:1: ( rulealias_type )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2396:1: ( rulealias_type )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2397:1: rulealias_type
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getType_declAccess().getAlias_typeParserRuleCall_0()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_rulealias_type_in_rule__Type_decl__Alternatives5098);
                    rulealias_type();
                    _fsp--;
                    if (failed) return ;
                    if ( backtracking==0 ) {
                       after(grammarAccess.getType_declAccess().getAlias_typeParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2402:6: ( rulestruct_type )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2402:6: ( rulestruct_type )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2403:1: rulestruct_type
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getType_declAccess().getStruct_typeParserRuleCall_1()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_rulestruct_type_in_rule__Type_decl__Alternatives5115);
                    rulestruct_type();
                    _fsp--;
                    if (failed) return ;
                    if ( backtracking==0 ) {
                       after(grammarAccess.getType_declAccess().getStruct_typeParserRuleCall_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2408:6: ( ruleunion_type )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2408:6: ( ruleunion_type )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2409:1: ruleunion_type
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getType_declAccess().getUnion_typeParserRuleCall_2()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_ruleunion_type_in_rule__Type_decl__Alternatives5132);
                    ruleunion_type();
                    _fsp--;
                    if (failed) return ;
                    if ( backtracking==0 ) {
                       after(grammarAccess.getType_declAccess().getUnion_typeParserRuleCall_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2414:6: ( ruleenum_type )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2414:6: ( ruleenum_type )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2415:1: ruleenum_type
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getType_declAccess().getEnum_typeParserRuleCall_3()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_ruleenum_type_in_rule__Type_decl__Alternatives5149);
                    ruleenum_type();
                    _fsp--;
                    if (failed) return ;
                    if ( backtracking==0 ) {
                       after(grammarAccess.getType_declAccess().getEnum_typeParserRuleCall_3()); 
                    }

                    }


                    }
                    break;
                case 5 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2420:6: ( ( rule__Type_decl__Group_4__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2420:6: ( ( rule__Type_decl__Group_4__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2421:1: ( rule__Type_decl__Group_4__0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getType_declAccess().getGroup_4()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2422:1: ( rule__Type_decl__Group_4__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2422:2: rule__Type_decl__Group_4__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Type_decl__Group_4__0_in_rule__Type_decl__Alternatives5166);
                    rule__Type_decl__Group_4__0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getType_declAccess().getGroup_4()); 
                    }

                    }


                    }
                    break;
                case 6 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2426:6: ( ruleconstr_forward_decl )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2426:6: ( ruleconstr_forward_decl )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2427:1: ruleconstr_forward_decl
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getType_declAccess().getConstr_forward_declParserRuleCall_5()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_ruleconstr_forward_decl_in_rule__Type_decl__Alternatives5184);
                    ruleconstr_forward_decl();
                    _fsp--;
                    if (failed) return ;
                    if ( backtracking==0 ) {
                       after(grammarAccess.getType_declAccess().getConstr_forward_declParserRuleCall_5()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Type_decl__Alternatives


    // $ANTLR start rule__Alias_type__Alternatives
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2437:1: rule__Alias_type__Alternatives : ( ( ( rule__Alias_type__Group_0__0 ) ) | ( ( rule__Alias_type__Group_1__0 ) ) );
    public final void rule__Alias_type__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2441:1: ( ( ( rule__Alias_type__Group_0__0 ) ) | ( ( rule__Alias_type__Group_1__0 ) ) )
            int alt19=2;
            int LA19_0 = input.LA(1);

            if ( (LA19_0==59) ) {
                int LA19_1 = input.LA(2);

                if ( (synpred30()) ) {
                    alt19=1;
                }
                else if ( (true) ) {
                    alt19=2;
                }
                else {
                    if (backtracking>0) {failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("2437:1: rule__Alias_type__Alternatives : ( ( ( rule__Alias_type__Group_0__0 ) ) | ( ( rule__Alias_type__Group_1__0 ) ) );", 19, 1, input);

                    throw nvae;
                }
            }
            else {
                if (backtracking>0) {failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("2437:1: rule__Alias_type__Alternatives : ( ( ( rule__Alias_type__Group_0__0 ) ) | ( ( rule__Alias_type__Group_1__0 ) ) );", 19, 0, input);

                throw nvae;
            }
            switch (alt19) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2442:1: ( ( rule__Alias_type__Group_0__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2442:1: ( ( rule__Alias_type__Group_0__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2443:1: ( rule__Alias_type__Group_0__0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getAlias_typeAccess().getGroup_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2444:1: ( rule__Alias_type__Group_0__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2444:2: rule__Alias_type__Group_0__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Alias_type__Group_0__0_in_rule__Alias_type__Alternatives5216);
                    rule__Alias_type__Group_0__0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getAlias_typeAccess().getGroup_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2448:6: ( ( rule__Alias_type__Group_1__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2448:6: ( ( rule__Alias_type__Group_1__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2449:1: ( rule__Alias_type__Group_1__0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getAlias_typeAccess().getGroup_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2450:1: ( rule__Alias_type__Group_1__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2450:2: rule__Alias_type__Group_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Alias_type__Group_1__0_in_rule__Alias_type__Alternatives5234);
                    rule__Alias_type__Group_1__0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getAlias_typeAccess().getGroup_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Alias_type__Alternatives


    // $ANTLR start rule__Alias_type__Alternatives_1_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2459:1: rule__Alias_type__Alternatives_1_1 : ( ( ( rule__Alias_type__ContainedTypeAssignment_1_1_0 ) ) | ( ( rule__Alias_type__SharedTypeAssignment_1_1_1 ) ) );
    public final void rule__Alias_type__Alternatives_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2463:1: ( ( ( rule__Alias_type__ContainedTypeAssignment_1_1_0 ) ) | ( ( rule__Alias_type__SharedTypeAssignment_1_1_1 ) ) )
            int alt20=2;
            int LA20_0 = input.LA(1);

            if ( ((LA20_0>=16 && LA20_0<=27)||LA20_0==70||(LA20_0>=73 && LA20_0<=74)) ) {
                alt20=1;
            }
            else if ( (LA20_0==RULE_ID) ) {
                alt20=2;
            }
            else {
                if (backtracking>0) {failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("2459:1: rule__Alias_type__Alternatives_1_1 : ( ( ( rule__Alias_type__ContainedTypeAssignment_1_1_0 ) ) | ( ( rule__Alias_type__SharedTypeAssignment_1_1_1 ) ) );", 20, 0, input);

                throw nvae;
            }
            switch (alt20) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2464:1: ( ( rule__Alias_type__ContainedTypeAssignment_1_1_0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2464:1: ( ( rule__Alias_type__ContainedTypeAssignment_1_1_0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2465:1: ( rule__Alias_type__ContainedTypeAssignment_1_1_0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getAlias_typeAccess().getContainedTypeAssignment_1_1_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2466:1: ( rule__Alias_type__ContainedTypeAssignment_1_1_0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2466:2: rule__Alias_type__ContainedTypeAssignment_1_1_0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Alias_type__ContainedTypeAssignment_1_1_0_in_rule__Alias_type__Alternatives_1_15267);
                    rule__Alias_type__ContainedTypeAssignment_1_1_0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getAlias_typeAccess().getContainedTypeAssignment_1_1_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2470:6: ( ( rule__Alias_type__SharedTypeAssignment_1_1_1 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2470:6: ( ( rule__Alias_type__SharedTypeAssignment_1_1_1 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2471:1: ( rule__Alias_type__SharedTypeAssignment_1_1_1 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getAlias_typeAccess().getSharedTypeAssignment_1_1_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2472:1: ( rule__Alias_type__SharedTypeAssignment_1_1_1 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2472:2: rule__Alias_type__SharedTypeAssignment_1_1_1
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Alias_type__SharedTypeAssignment_1_1_1_in_rule__Alias_type__Alternatives_1_15285);
                    rule__Alias_type__SharedTypeAssignment_1_1_1();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getAlias_typeAccess().getSharedTypeAssignment_1_1_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Alias_type__Alternatives_1_1


    // $ANTLR start rule__Array_type_spec__Alternatives_0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2481:1: rule__Array_type_spec__Alternatives_0 : ( ( ( rule__Array_type_spec__ContainedTypeAssignment_0_0 ) ) | ( ( rule__Array_type_spec__SharedTypeAssignment_0_1 ) ) );
    public final void rule__Array_type_spec__Alternatives_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2485:1: ( ( ( rule__Array_type_spec__ContainedTypeAssignment_0_0 ) ) | ( ( rule__Array_type_spec__SharedTypeAssignment_0_1 ) ) )
            int alt21=2;
            int LA21_0 = input.LA(1);

            if ( ((LA21_0>=16 && LA21_0<=27)||LA21_0==70||(LA21_0>=73 && LA21_0<=74)) ) {
                alt21=1;
            }
            else if ( (LA21_0==RULE_ID) ) {
                alt21=2;
            }
            else {
                if (backtracking>0) {failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("2481:1: rule__Array_type_spec__Alternatives_0 : ( ( ( rule__Array_type_spec__ContainedTypeAssignment_0_0 ) ) | ( ( rule__Array_type_spec__SharedTypeAssignment_0_1 ) ) );", 21, 0, input);

                throw nvae;
            }
            switch (alt21) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2486:1: ( ( rule__Array_type_spec__ContainedTypeAssignment_0_0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2486:1: ( ( rule__Array_type_spec__ContainedTypeAssignment_0_0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2487:1: ( rule__Array_type_spec__ContainedTypeAssignment_0_0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getArray_type_specAccess().getContainedTypeAssignment_0_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2488:1: ( rule__Array_type_spec__ContainedTypeAssignment_0_0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2488:2: rule__Array_type_spec__ContainedTypeAssignment_0_0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Array_type_spec__ContainedTypeAssignment_0_0_in_rule__Array_type_spec__Alternatives_05318);
                    rule__Array_type_spec__ContainedTypeAssignment_0_0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getArray_type_specAccess().getContainedTypeAssignment_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2492:6: ( ( rule__Array_type_spec__SharedTypeAssignment_0_1 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2492:6: ( ( rule__Array_type_spec__SharedTypeAssignment_0_1 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2493:1: ( rule__Array_type_spec__SharedTypeAssignment_0_1 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getArray_type_specAccess().getSharedTypeAssignment_0_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2494:1: ( rule__Array_type_spec__SharedTypeAssignment_0_1 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2494:2: rule__Array_type_spec__SharedTypeAssignment_0_1
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Array_type_spec__SharedTypeAssignment_0_1_in_rule__Array_type_spec__Alternatives_05336);
                    rule__Array_type_spec__SharedTypeAssignment_0_1();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getArray_type_specAccess().getSharedTypeAssignment_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Array_type_spec__Alternatives_0


    // $ANTLR start rule__Simple_type_spec__Alternatives
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2503:1: rule__Simple_type_spec__Alternatives : ( ( rulebase_type_spec ) | ( ruletemplate_type_spec ) );
    public final void rule__Simple_type_spec__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2507:1: ( ( rulebase_type_spec ) | ( ruletemplate_type_spec ) )
            int alt22=2;
            switch ( input.LA(1) ) {
            case 16:
            case 17:
            case 18:
            case 19:
            case 20:
            case 21:
            case 24:
            case 25:
            case 26:
            case 27:
            case 74:
                {
                alt22=1;
                }
                break;
            case 22:
                {
                int LA22_2 = input.LA(2);

                if ( (LA22_2==EOF||LA22_2==RULE_ID||LA22_2==49||LA22_2==72) ) {
                    alt22=1;
                }
                else if ( (LA22_2==71) ) {
                    alt22=2;
                }
                else {
                    if (backtracking>0) {failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("2503:1: rule__Simple_type_spec__Alternatives : ( ( rulebase_type_spec ) | ( ruletemplate_type_spec ) );", 22, 2, input);

                    throw nvae;
                }
                }
                break;
            case 23:
                {
                int LA22_3 = input.LA(2);

                if ( (LA22_3==71) ) {
                    alt22=2;
                }
                else if ( (LA22_3==EOF||LA22_3==RULE_ID||LA22_3==49||LA22_3==72) ) {
                    alt22=1;
                }
                else {
                    if (backtracking>0) {failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("2503:1: rule__Simple_type_spec__Alternatives : ( ( rulebase_type_spec ) | ( ruletemplate_type_spec ) );", 22, 3, input);

                    throw nvae;
                }
                }
                break;
            case 70:
            case 73:
                {
                alt22=2;
                }
                break;
            default:
                if (backtracking>0) {failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("2503:1: rule__Simple_type_spec__Alternatives : ( ( rulebase_type_spec ) | ( ruletemplate_type_spec ) );", 22, 0, input);

                throw nvae;
            }

            switch (alt22) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2508:1: ( rulebase_type_spec )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2508:1: ( rulebase_type_spec )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2509:1: rulebase_type_spec
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getSimple_type_specAccess().getBase_type_specParserRuleCall_0()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_rulebase_type_spec_in_rule__Simple_type_spec__Alternatives5369);
                    rulebase_type_spec();
                    _fsp--;
                    if (failed) return ;
                    if ( backtracking==0 ) {
                       after(grammarAccess.getSimple_type_specAccess().getBase_type_specParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2514:6: ( ruletemplate_type_spec )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2514:6: ( ruletemplate_type_spec )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2515:1: ruletemplate_type_spec
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getSimple_type_specAccess().getTemplate_type_specParserRuleCall_1()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_ruletemplate_type_spec_in_rule__Simple_type_spec__Alternatives5386);
                    ruletemplate_type_spec();
                    _fsp--;
                    if (failed) return ;
                    if ( backtracking==0 ) {
                       after(grammarAccess.getSimple_type_specAccess().getTemplate_type_specParserRuleCall_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Simple_type_spec__Alternatives


    // $ANTLR start rule__Base_type_spec__Alternatives
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2525:1: rule__Base_type_spec__Alternatives : ( ( ruleprimitive_def ) | ( ( rule__Base_type_spec__KindAssignment_1 ) ) );
    public final void rule__Base_type_spec__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2529:1: ( ( ruleprimitive_def ) | ( ( rule__Base_type_spec__KindAssignment_1 ) ) )
            int alt23=2;
            int LA23_0 = input.LA(1);

            if ( ((LA23_0>=16 && LA23_0<=26)||LA23_0==74) ) {
                alt23=1;
            }
            else if ( (LA23_0==27) ) {
                alt23=2;
            }
            else {
                if (backtracking>0) {failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("2525:1: rule__Base_type_spec__Alternatives : ( ( ruleprimitive_def ) | ( ( rule__Base_type_spec__KindAssignment_1 ) ) );", 23, 0, input);

                throw nvae;
            }
            switch (alt23) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2530:1: ( ruleprimitive_def )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2530:1: ( ruleprimitive_def )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2531:1: ruleprimitive_def
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getBase_type_specAccess().getPrimitive_defParserRuleCall_0()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_ruleprimitive_def_in_rule__Base_type_spec__Alternatives5418);
                    ruleprimitive_def();
                    _fsp--;
                    if (failed) return ;
                    if ( backtracking==0 ) {
                       after(grammarAccess.getBase_type_specAccess().getPrimitive_defParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2536:6: ( ( rule__Base_type_spec__KindAssignment_1 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2536:6: ( ( rule__Base_type_spec__KindAssignment_1 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2537:1: ( rule__Base_type_spec__KindAssignment_1 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getBase_type_specAccess().getKindAssignment_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2538:1: ( rule__Base_type_spec__KindAssignment_1 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2538:2: rule__Base_type_spec__KindAssignment_1
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Base_type_spec__KindAssignment_1_in_rule__Base_type_spec__Alternatives5435);
                    rule__Base_type_spec__KindAssignment_1();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getBase_type_specAccess().getKindAssignment_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Base_type_spec__Alternatives


    // $ANTLR start rule__Template_type_spec__Alternatives
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2547:1: rule__Template_type_spec__Alternatives : ( ( rulesequence_type ) | ( rulestringdef_type ) | ( rulewide_stringdef_type ) | ( rulefixed_pt_type ) );
    public final void rule__Template_type_spec__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2551:1: ( ( rulesequence_type ) | ( rulestringdef_type ) | ( rulewide_stringdef_type ) | ( rulefixed_pt_type ) )
            int alt24=4;
            switch ( input.LA(1) ) {
            case 70:
                {
                alt24=1;
                }
                break;
            case 22:
                {
                alt24=2;
                }
                break;
            case 23:
                {
                alt24=3;
                }
                break;
            case 73:
                {
                alt24=4;
                }
                break;
            default:
                if (backtracking>0) {failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("2547:1: rule__Template_type_spec__Alternatives : ( ( rulesequence_type ) | ( rulestringdef_type ) | ( rulewide_stringdef_type ) | ( rulefixed_pt_type ) );", 24, 0, input);

                throw nvae;
            }

            switch (alt24) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2552:1: ( rulesequence_type )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2552:1: ( rulesequence_type )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2553:1: rulesequence_type
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getTemplate_type_specAccess().getSequence_typeParserRuleCall_0()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_rulesequence_type_in_rule__Template_type_spec__Alternatives5468);
                    rulesequence_type();
                    _fsp--;
                    if (failed) return ;
                    if ( backtracking==0 ) {
                       after(grammarAccess.getTemplate_type_specAccess().getSequence_typeParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2558:6: ( rulestringdef_type )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2558:6: ( rulestringdef_type )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2559:1: rulestringdef_type
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getTemplate_type_specAccess().getStringdef_typeParserRuleCall_1()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_rulestringdef_type_in_rule__Template_type_spec__Alternatives5485);
                    rulestringdef_type();
                    _fsp--;
                    if (failed) return ;
                    if ( backtracking==0 ) {
                       after(grammarAccess.getTemplate_type_specAccess().getStringdef_typeParserRuleCall_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2564:6: ( rulewide_stringdef_type )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2564:6: ( rulewide_stringdef_type )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2565:1: rulewide_stringdef_type
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getTemplate_type_specAccess().getWide_stringdef_typeParserRuleCall_2()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_rulewide_stringdef_type_in_rule__Template_type_spec__Alternatives5502);
                    rulewide_stringdef_type();
                    _fsp--;
                    if (failed) return ;
                    if ( backtracking==0 ) {
                       after(grammarAccess.getTemplate_type_specAccess().getWide_stringdef_typeParserRuleCall_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2570:6: ( rulefixed_pt_type )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2570:6: ( rulefixed_pt_type )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2571:1: rulefixed_pt_type
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getTemplate_type_specAccess().getFixed_pt_typeParserRuleCall_3()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_rulefixed_pt_type_in_rule__Template_type_spec__Alternatives5519);
                    rulefixed_pt_type();
                    _fsp--;
                    if (failed) return ;
                    if ( backtracking==0 ) {
                       after(grammarAccess.getTemplate_type_specAccess().getFixed_pt_typeParserRuleCall_3()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Template_type_spec__Alternatives


    // $ANTLR start rule__Member__Alternatives
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2582:1: rule__Member__Alternatives : ( ( ( rule__Member__Group_0__0 ) ) | ( ( rule__Member__Group_1__0 ) ) | ( ( rule__Member__Group_2__0 ) ) | ( ( rule__Member__Group_3__0 ) ) );
    public final void rule__Member__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2586:1: ( ( ( rule__Member__Group_0__0 ) ) | ( ( rule__Member__Group_1__0 ) ) | ( ( rule__Member__Group_2__0 ) ) | ( ( rule__Member__Group_3__0 ) ) )
            int alt25=4;
            switch ( input.LA(1) ) {
            case 18:
                {
                int LA25_1 = input.LA(2);

                if ( (synpred38()) ) {
                    alt25=1;
                }
                else if ( (synpred39()) ) {
                    alt25=2;
                }
                else {
                    if (backtracking>0) {failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("2582:1: rule__Member__Alternatives : ( ( ( rule__Member__Group_0__0 ) ) | ( ( rule__Member__Group_1__0 ) ) | ( ( rule__Member__Group_2__0 ) ) | ( ( rule__Member__Group_3__0 ) ) );", 25, 1, input);

                    throw nvae;
                }
                }
                break;
            case 19:
                {
                int LA25_2 = input.LA(2);

                if ( (synpred38()) ) {
                    alt25=1;
                }
                else if ( (synpred39()) ) {
                    alt25=2;
                }
                else {
                    if (backtracking>0) {failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("2582:1: rule__Member__Alternatives : ( ( ( rule__Member__Group_0__0 ) ) | ( ( rule__Member__Group_1__0 ) ) | ( ( rule__Member__Group_2__0 ) ) | ( ( rule__Member__Group_3__0 ) ) );", 25, 2, input);

                    throw nvae;
                }
                }
                break;
            case 74:
                {
                int LA25_3 = input.LA(2);

                if ( (synpred38()) ) {
                    alt25=1;
                }
                else if ( (synpred39()) ) {
                    alt25=2;
                }
                else {
                    if (backtracking>0) {failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("2582:1: rule__Member__Alternatives : ( ( ( rule__Member__Group_0__0 ) ) | ( ( rule__Member__Group_1__0 ) ) | ( ( rule__Member__Group_2__0 ) ) | ( ( rule__Member__Group_3__0 ) ) );", 25, 3, input);

                    throw nvae;
                }
                }
                break;
            case 16:
                {
                int LA25_4 = input.LA(2);

                if ( (synpred38()) ) {
                    alt25=1;
                }
                else if ( (synpred39()) ) {
                    alt25=2;
                }
                else {
                    if (backtracking>0) {failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("2582:1: rule__Member__Alternatives : ( ( ( rule__Member__Group_0__0 ) ) | ( ( rule__Member__Group_1__0 ) ) | ( ( rule__Member__Group_2__0 ) ) | ( ( rule__Member__Group_3__0 ) ) );", 25, 4, input);

                    throw nvae;
                }
                }
                break;
            case 17:
                {
                int LA25_5 = input.LA(2);

                if ( (synpred38()) ) {
                    alt25=1;
                }
                else if ( (synpred39()) ) {
                    alt25=2;
                }
                else {
                    if (backtracking>0) {failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("2582:1: rule__Member__Alternatives : ( ( ( rule__Member__Group_0__0 ) ) | ( ( rule__Member__Group_1__0 ) ) | ( ( rule__Member__Group_2__0 ) ) | ( ( rule__Member__Group_3__0 ) ) );", 25, 5, input);

                    throw nvae;
                }
                }
                break;
            case 20:
                {
                int LA25_6 = input.LA(2);

                if ( (synpred38()) ) {
                    alt25=1;
                }
                else if ( (synpred39()) ) {
                    alt25=2;
                }
                else {
                    if (backtracking>0) {failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("2582:1: rule__Member__Alternatives : ( ( ( rule__Member__Group_0__0 ) ) | ( ( rule__Member__Group_1__0 ) ) | ( ( rule__Member__Group_2__0 ) ) | ( ( rule__Member__Group_3__0 ) ) );", 25, 6, input);

                    throw nvae;
                }
                }
                break;
            case 21:
                {
                int LA25_7 = input.LA(2);

                if ( (synpred38()) ) {
                    alt25=1;
                }
                else if ( (synpred39()) ) {
                    alt25=2;
                }
                else {
                    if (backtracking>0) {failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("2582:1: rule__Member__Alternatives : ( ( ( rule__Member__Group_0__0 ) ) | ( ( rule__Member__Group_1__0 ) ) | ( ( rule__Member__Group_2__0 ) ) | ( ( rule__Member__Group_3__0 ) ) );", 25, 7, input);

                    throw nvae;
                }
                }
                break;
            case 22:
                {
                int LA25_8 = input.LA(2);

                if ( (synpred38()) ) {
                    alt25=1;
                }
                else if ( (synpred39()) ) {
                    alt25=2;
                }
                else {
                    if (backtracking>0) {failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("2582:1: rule__Member__Alternatives : ( ( ( rule__Member__Group_0__0 ) ) | ( ( rule__Member__Group_1__0 ) ) | ( ( rule__Member__Group_2__0 ) ) | ( ( rule__Member__Group_3__0 ) ) );", 25, 8, input);

                    throw nvae;
                }
                }
                break;
            case 23:
                {
                int LA25_9 = input.LA(2);

                if ( (synpred38()) ) {
                    alt25=1;
                }
                else if ( (synpred39()) ) {
                    alt25=2;
                }
                else {
                    if (backtracking>0) {failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("2582:1: rule__Member__Alternatives : ( ( ( rule__Member__Group_0__0 ) ) | ( ( rule__Member__Group_1__0 ) ) | ( ( rule__Member__Group_2__0 ) ) | ( ( rule__Member__Group_3__0 ) ) );", 25, 9, input);

                    throw nvae;
                }
                }
                break;
            case 24:
                {
                int LA25_10 = input.LA(2);

                if ( (synpred38()) ) {
                    alt25=1;
                }
                else if ( (synpred39()) ) {
                    alt25=2;
                }
                else {
                    if (backtracking>0) {failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("2582:1: rule__Member__Alternatives : ( ( ( rule__Member__Group_0__0 ) ) | ( ( rule__Member__Group_1__0 ) ) | ( ( rule__Member__Group_2__0 ) ) | ( ( rule__Member__Group_3__0 ) ) );", 25, 10, input);

                    throw nvae;
                }
                }
                break;
            case 25:
                {
                int LA25_11 = input.LA(2);

                if ( (synpred38()) ) {
                    alt25=1;
                }
                else if ( (synpred39()) ) {
                    alt25=2;
                }
                else {
                    if (backtracking>0) {failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("2582:1: rule__Member__Alternatives : ( ( ( rule__Member__Group_0__0 ) ) | ( ( rule__Member__Group_1__0 ) ) | ( ( rule__Member__Group_2__0 ) ) | ( ( rule__Member__Group_3__0 ) ) );", 25, 11, input);

                    throw nvae;
                }
                }
                break;
            case 26:
                {
                int LA25_12 = input.LA(2);

                if ( (synpred38()) ) {
                    alt25=1;
                }
                else if ( (synpred39()) ) {
                    alt25=2;
                }
                else {
                    if (backtracking>0) {failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("2582:1: rule__Member__Alternatives : ( ( ( rule__Member__Group_0__0 ) ) | ( ( rule__Member__Group_1__0 ) ) | ( ( rule__Member__Group_2__0 ) ) | ( ( rule__Member__Group_3__0 ) ) );", 25, 12, input);

                    throw nvae;
                }
                }
                break;
            case 27:
                {
                int LA25_13 = input.LA(2);

                if ( (synpred38()) ) {
                    alt25=1;
                }
                else if ( (synpred39()) ) {
                    alt25=2;
                }
                else {
                    if (backtracking>0) {failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("2582:1: rule__Member__Alternatives : ( ( ( rule__Member__Group_0__0 ) ) | ( ( rule__Member__Group_1__0 ) ) | ( ( rule__Member__Group_2__0 ) ) | ( ( rule__Member__Group_3__0 ) ) );", 25, 13, input);

                    throw nvae;
                }
                }
                break;
            case 70:
                {
                int LA25_14 = input.LA(2);

                if ( (synpred38()) ) {
                    alt25=1;
                }
                else if ( (synpred39()) ) {
                    alt25=2;
                }
                else {
                    if (backtracking>0) {failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("2582:1: rule__Member__Alternatives : ( ( ( rule__Member__Group_0__0 ) ) | ( ( rule__Member__Group_1__0 ) ) | ( ( rule__Member__Group_2__0 ) ) | ( ( rule__Member__Group_3__0 ) ) );", 25, 14, input);

                    throw nvae;
                }
                }
                break;
            case 73:
                {
                int LA25_15 = input.LA(2);

                if ( (synpred38()) ) {
                    alt25=1;
                }
                else if ( (synpred39()) ) {
                    alt25=2;
                }
                else {
                    if (backtracking>0) {failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("2582:1: rule__Member__Alternatives : ( ( ( rule__Member__Group_0__0 ) ) | ( ( rule__Member__Group_1__0 ) ) | ( ( rule__Member__Group_2__0 ) ) | ( ( rule__Member__Group_3__0 ) ) );", 25, 15, input);

                    throw nvae;
                }
                }
                break;
            case RULE_ID:
                {
                int LA25_16 = input.LA(2);

                if ( (synpred38()) ) {
                    alt25=1;
                }
                else if ( (true) ) {
                    alt25=4;
                }
                else {
                    if (backtracking>0) {failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("2582:1: rule__Member__Alternatives : ( ( ( rule__Member__Group_0__0 ) ) | ( ( rule__Member__Group_1__0 ) ) | ( ( rule__Member__Group_2__0 ) ) | ( ( rule__Member__Group_3__0 ) ) );", 25, 16, input);

                    throw nvae;
                }
                }
                break;
            case 62:
                {
                alt25=3;
                }
                break;
            default:
                if (backtracking>0) {failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("2582:1: rule__Member__Alternatives : ( ( ( rule__Member__Group_0__0 ) ) | ( ( rule__Member__Group_1__0 ) ) | ( ( rule__Member__Group_2__0 ) ) | ( ( rule__Member__Group_3__0 ) ) );", 25, 0, input);

                throw nvae;
            }

            switch (alt25) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2587:1: ( ( rule__Member__Group_0__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2587:1: ( ( rule__Member__Group_0__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2588:1: ( rule__Member__Group_0__0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getMemberAccess().getGroup_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2589:1: ( rule__Member__Group_0__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2589:2: rule__Member__Group_0__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Member__Group_0__0_in_rule__Member__Alternatives5552);
                    rule__Member__Group_0__0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getMemberAccess().getGroup_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2593:6: ( ( rule__Member__Group_1__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2593:6: ( ( rule__Member__Group_1__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2594:1: ( rule__Member__Group_1__0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getMemberAccess().getGroup_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2595:1: ( rule__Member__Group_1__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2595:2: rule__Member__Group_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Member__Group_1__0_in_rule__Member__Alternatives5570);
                    rule__Member__Group_1__0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getMemberAccess().getGroup_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2599:6: ( ( rule__Member__Group_2__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2599:6: ( ( rule__Member__Group_2__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2600:1: ( rule__Member__Group_2__0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getMemberAccess().getGroup_2()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2601:1: ( rule__Member__Group_2__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2601:2: rule__Member__Group_2__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Member__Group_2__0_in_rule__Member__Alternatives5588);
                    rule__Member__Group_2__0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getMemberAccess().getGroup_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2605:6: ( ( rule__Member__Group_3__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2605:6: ( ( rule__Member__Group_3__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2606:1: ( rule__Member__Group_3__0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getMemberAccess().getGroup_3()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2607:1: ( rule__Member__Group_3__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2607:2: rule__Member__Group_3__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Member__Group_3__0_in_rule__Member__Alternatives5606);
                    rule__Member__Group_3__0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getMemberAccess().getGroup_3()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Member__Alternatives


    // $ANTLR start rule__Union_type__Alternatives_4
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2616:1: rule__Union_type__Alternatives_4 : ( ( ( rule__Union_type__ContainedDiscrimAssignment_4_0 ) ) | ( ( rule__Union_type__SharedDiscrimAssignment_4_1 ) ) );
    public final void rule__Union_type__Alternatives_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2620:1: ( ( ( rule__Union_type__ContainedDiscrimAssignment_4_0 ) ) | ( ( rule__Union_type__SharedDiscrimAssignment_4_1 ) ) )
            int alt26=2;
            int LA26_0 = input.LA(1);

            if ( ((LA26_0>=18 && LA26_0<=20)||LA26_0==24||LA26_0==67||LA26_0==74) ) {
                alt26=1;
            }
            else if ( (LA26_0==RULE_ID) ) {
                alt26=2;
            }
            else {
                if (backtracking>0) {failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("2616:1: rule__Union_type__Alternatives_4 : ( ( ( rule__Union_type__ContainedDiscrimAssignment_4_0 ) ) | ( ( rule__Union_type__SharedDiscrimAssignment_4_1 ) ) );", 26, 0, input);

                throw nvae;
            }
            switch (alt26) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2621:1: ( ( rule__Union_type__ContainedDiscrimAssignment_4_0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2621:1: ( ( rule__Union_type__ContainedDiscrimAssignment_4_0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2622:1: ( rule__Union_type__ContainedDiscrimAssignment_4_0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getUnion_typeAccess().getContainedDiscrimAssignment_4_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2623:1: ( rule__Union_type__ContainedDiscrimAssignment_4_0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2623:2: rule__Union_type__ContainedDiscrimAssignment_4_0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Union_type__ContainedDiscrimAssignment_4_0_in_rule__Union_type__Alternatives_45639);
                    rule__Union_type__ContainedDiscrimAssignment_4_0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getUnion_typeAccess().getContainedDiscrimAssignment_4_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2627:6: ( ( rule__Union_type__SharedDiscrimAssignment_4_1 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2627:6: ( ( rule__Union_type__SharedDiscrimAssignment_4_1 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2628:1: ( rule__Union_type__SharedDiscrimAssignment_4_1 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getUnion_typeAccess().getSharedDiscrimAssignment_4_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2629:1: ( rule__Union_type__SharedDiscrimAssignment_4_1 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2629:2: rule__Union_type__SharedDiscrimAssignment_4_1
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Union_type__SharedDiscrimAssignment_4_1_in_rule__Union_type__Alternatives_45657);
                    rule__Union_type__SharedDiscrimAssignment_4_1();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getUnion_typeAccess().getSharedDiscrimAssignment_4_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Union_type__Alternatives_4


    // $ANTLR start rule__Switch_type_spec_cont__Alternatives
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2638:1: rule__Switch_type_spec_cont__Alternatives : ( ( ruleinteger_type ) | ( ( rule__Switch_type_spec_cont__Group_1__0 ) ) | ( ( rule__Switch_type_spec_cont__Group_2__0 ) ) | ( ruleenum_type ) );
    public final void rule__Switch_type_spec_cont__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2642:1: ( ( ruleinteger_type ) | ( ( rule__Switch_type_spec_cont__Group_1__0 ) ) | ( ( rule__Switch_type_spec_cont__Group_2__0 ) ) | ( ruleenum_type ) )
            int alt27=4;
            switch ( input.LA(1) ) {
            case 18:
            case 19:
            case 74:
                {
                alt27=1;
                }
                break;
            case 20:
                {
                alt27=2;
                }
                break;
            case 24:
                {
                alt27=3;
                }
                break;
            case 67:
                {
                alt27=4;
                }
                break;
            default:
                if (backtracking>0) {failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("2638:1: rule__Switch_type_spec_cont__Alternatives : ( ( ruleinteger_type ) | ( ( rule__Switch_type_spec_cont__Group_1__0 ) ) | ( ( rule__Switch_type_spec_cont__Group_2__0 ) ) | ( ruleenum_type ) );", 27, 0, input);

                throw nvae;
            }

            switch (alt27) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2643:1: ( ruleinteger_type )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2643:1: ( ruleinteger_type )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2644:1: ruleinteger_type
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getSwitch_type_spec_contAccess().getInteger_typeParserRuleCall_0()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_ruleinteger_type_in_rule__Switch_type_spec_cont__Alternatives5690);
                    ruleinteger_type();
                    _fsp--;
                    if (failed) return ;
                    if ( backtracking==0 ) {
                       after(grammarAccess.getSwitch_type_spec_contAccess().getInteger_typeParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2649:6: ( ( rule__Switch_type_spec_cont__Group_1__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2649:6: ( ( rule__Switch_type_spec_cont__Group_1__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2650:1: ( rule__Switch_type_spec_cont__Group_1__0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getSwitch_type_spec_contAccess().getGroup_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2651:1: ( rule__Switch_type_spec_cont__Group_1__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2651:2: rule__Switch_type_spec_cont__Group_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Switch_type_spec_cont__Group_1__0_in_rule__Switch_type_spec_cont__Alternatives5707);
                    rule__Switch_type_spec_cont__Group_1__0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getSwitch_type_spec_contAccess().getGroup_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2655:6: ( ( rule__Switch_type_spec_cont__Group_2__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2655:6: ( ( rule__Switch_type_spec_cont__Group_2__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2656:1: ( rule__Switch_type_spec_cont__Group_2__0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getSwitch_type_spec_contAccess().getGroup_2()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2657:1: ( rule__Switch_type_spec_cont__Group_2__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2657:2: rule__Switch_type_spec_cont__Group_2__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Switch_type_spec_cont__Group_2__0_in_rule__Switch_type_spec_cont__Alternatives5725);
                    rule__Switch_type_spec_cont__Group_2__0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getSwitch_type_spec_contAccess().getGroup_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2661:6: ( ruleenum_type )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2661:6: ( ruleenum_type )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2662:1: ruleenum_type
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getSwitch_type_spec_contAccess().getEnum_typeParserRuleCall_3()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_ruleenum_type_in_rule__Switch_type_spec_cont__Alternatives5743);
                    ruleenum_type();
                    _fsp--;
                    if (failed) return ;
                    if ( backtracking==0 ) {
                       after(grammarAccess.getSwitch_type_spec_contAccess().getEnum_typeParserRuleCall_3()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Switch_type_spec_cont__Alternatives


    // $ANTLR start rule__Case_stmt__Alternatives
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2672:1: rule__Case_stmt__Alternatives : ( ( ( rule__Case_stmt__Group_0__0 ) ) | ( ( rule__Case_stmt__Group_1__0 ) ) );
    public final void rule__Case_stmt__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2676:1: ( ( ( rule__Case_stmt__Group_0__0 ) ) | ( ( rule__Case_stmt__Group_1__0 ) ) )
            int alt28=2;
            int LA28_0 = input.LA(1);

            if ( (LA28_0==65) ) {
                int LA28_1 = input.LA(2);

                if ( (synpred45()) ) {
                    alt28=1;
                }
                else if ( (true) ) {
                    alt28=2;
                }
                else {
                    if (backtracking>0) {failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("2672:1: rule__Case_stmt__Alternatives : ( ( ( rule__Case_stmt__Group_0__0 ) ) | ( ( rule__Case_stmt__Group_1__0 ) ) );", 28, 1, input);

                    throw nvae;
                }
            }
            else if ( (LA28_0==66) ) {
                int LA28_2 = input.LA(2);

                if ( (synpred45()) ) {
                    alt28=1;
                }
                else if ( (true) ) {
                    alt28=2;
                }
                else {
                    if (backtracking>0) {failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("2672:1: rule__Case_stmt__Alternatives : ( ( ( rule__Case_stmt__Group_0__0 ) ) | ( ( rule__Case_stmt__Group_1__0 ) ) );", 28, 2, input);

                    throw nvae;
                }
            }
            else {
                if (backtracking>0) {failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("2672:1: rule__Case_stmt__Alternatives : ( ( ( rule__Case_stmt__Group_0__0 ) ) | ( ( rule__Case_stmt__Group_1__0 ) ) );", 28, 0, input);

                throw nvae;
            }
            switch (alt28) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2677:1: ( ( rule__Case_stmt__Group_0__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2677:1: ( ( rule__Case_stmt__Group_0__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2678:1: ( rule__Case_stmt__Group_0__0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getCase_stmtAccess().getGroup_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2679:1: ( rule__Case_stmt__Group_0__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2679:2: rule__Case_stmt__Group_0__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_0__0_in_rule__Case_stmt__Alternatives5775);
                    rule__Case_stmt__Group_0__0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getCase_stmtAccess().getGroup_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2683:6: ( ( rule__Case_stmt__Group_1__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2683:6: ( ( rule__Case_stmt__Group_1__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2684:1: ( rule__Case_stmt__Group_1__0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getCase_stmtAccess().getGroup_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2685:1: ( rule__Case_stmt__Group_1__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2685:2: rule__Case_stmt__Group_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_1__0_in_rule__Case_stmt__Alternatives5793);
                    rule__Case_stmt__Group_1__0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getCase_stmtAccess().getGroup_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Case_stmt__Alternatives


    // $ANTLR start rule__Case_stmt__Alternatives_0_0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2694:1: rule__Case_stmt__Alternatives_0_0 : ( ( ( rule__Case_stmt__Group_0_0_0__0 ) ) | ( ( rule__Case_stmt__Group_0_0_1__0 ) ) );
    public final void rule__Case_stmt__Alternatives_0_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2698:1: ( ( ( rule__Case_stmt__Group_0_0_0__0 ) ) | ( ( rule__Case_stmt__Group_0_0_1__0 ) ) )
            int alt29=2;
            int LA29_0 = input.LA(1);

            if ( (LA29_0==65) ) {
                alt29=1;
            }
            else if ( (LA29_0==66) ) {
                alt29=2;
            }
            else {
                if (backtracking>0) {failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("2694:1: rule__Case_stmt__Alternatives_0_0 : ( ( ( rule__Case_stmt__Group_0_0_0__0 ) ) | ( ( rule__Case_stmt__Group_0_0_1__0 ) ) );", 29, 0, input);

                throw nvae;
            }
            switch (alt29) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2699:1: ( ( rule__Case_stmt__Group_0_0_0__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2699:1: ( ( rule__Case_stmt__Group_0_0_0__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2700:1: ( rule__Case_stmt__Group_0_0_0__0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getCase_stmtAccess().getGroup_0_0_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2701:1: ( rule__Case_stmt__Group_0_0_0__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2701:2: rule__Case_stmt__Group_0_0_0__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_0_0_0__0_in_rule__Case_stmt__Alternatives_0_05826);
                    rule__Case_stmt__Group_0_0_0__0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getCase_stmtAccess().getGroup_0_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2705:6: ( ( rule__Case_stmt__Group_0_0_1__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2705:6: ( ( rule__Case_stmt__Group_0_0_1__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2706:1: ( rule__Case_stmt__Group_0_0_1__0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getCase_stmtAccess().getGroup_0_0_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2707:1: ( rule__Case_stmt__Group_0_0_1__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2707:2: rule__Case_stmt__Group_0_0_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_0_0_1__0_in_rule__Case_stmt__Alternatives_0_05844);
                    rule__Case_stmt__Group_0_0_1__0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getCase_stmtAccess().getGroup_0_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Case_stmt__Alternatives_0_0


    // $ANTLR start rule__Case_stmt__Alternatives_1_0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2716:1: rule__Case_stmt__Alternatives_1_0 : ( ( ( rule__Case_stmt__Group_1_0_0__0 ) ) | ( ( rule__Case_stmt__Group_1_0_1__0 ) ) );
    public final void rule__Case_stmt__Alternatives_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2720:1: ( ( ( rule__Case_stmt__Group_1_0_0__0 ) ) | ( ( rule__Case_stmt__Group_1_0_1__0 ) ) )
            int alt30=2;
            int LA30_0 = input.LA(1);

            if ( (LA30_0==65) ) {
                alt30=1;
            }
            else if ( (LA30_0==66) ) {
                alt30=2;
            }
            else {
                if (backtracking>0) {failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("2716:1: rule__Case_stmt__Alternatives_1_0 : ( ( ( rule__Case_stmt__Group_1_0_0__0 ) ) | ( ( rule__Case_stmt__Group_1_0_1__0 ) ) );", 30, 0, input);

                throw nvae;
            }
            switch (alt30) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2721:1: ( ( rule__Case_stmt__Group_1_0_0__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2721:1: ( ( rule__Case_stmt__Group_1_0_0__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2722:1: ( rule__Case_stmt__Group_1_0_0__0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getCase_stmtAccess().getGroup_1_0_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2723:1: ( rule__Case_stmt__Group_1_0_0__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2723:2: rule__Case_stmt__Group_1_0_0__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_1_0_0__0_in_rule__Case_stmt__Alternatives_1_05877);
                    rule__Case_stmt__Group_1_0_0__0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getCase_stmtAccess().getGroup_1_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2727:6: ( ( rule__Case_stmt__Group_1_0_1__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2727:6: ( ( rule__Case_stmt__Group_1_0_1__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2728:1: ( rule__Case_stmt__Group_1_0_1__0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getCase_stmtAccess().getGroup_1_0_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2729:1: ( rule__Case_stmt__Group_1_0_1__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2729:2: rule__Case_stmt__Group_1_0_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_1_0_1__0_in_rule__Case_stmt__Alternatives_1_05895);
                    rule__Case_stmt__Group_1_0_1__0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getCase_stmtAccess().getGroup_1_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Case_stmt__Alternatives_1_0


    // $ANTLR start rule__Case_stmt__Alternatives_1_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2738:1: rule__Case_stmt__Alternatives_1_1 : ( ( ( rule__Case_stmt__ContainedTypeAssignment_1_1_0 ) ) | ( ( rule__Case_stmt__SharedTypeAssignment_1_1_1 ) ) );
    public final void rule__Case_stmt__Alternatives_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2742:1: ( ( ( rule__Case_stmt__ContainedTypeAssignment_1_1_0 ) ) | ( ( rule__Case_stmt__SharedTypeAssignment_1_1_1 ) ) )
            int alt31=2;
            int LA31_0 = input.LA(1);

            if ( ((LA31_0>=16 && LA31_0<=27)||LA31_0==70||(LA31_0>=73 && LA31_0<=74)) ) {
                alt31=1;
            }
            else if ( (LA31_0==RULE_ID) ) {
                alt31=2;
            }
            else {
                if (backtracking>0) {failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("2738:1: rule__Case_stmt__Alternatives_1_1 : ( ( ( rule__Case_stmt__ContainedTypeAssignment_1_1_0 ) ) | ( ( rule__Case_stmt__SharedTypeAssignment_1_1_1 ) ) );", 31, 0, input);

                throw nvae;
            }
            switch (alt31) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2743:1: ( ( rule__Case_stmt__ContainedTypeAssignment_1_1_0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2743:1: ( ( rule__Case_stmt__ContainedTypeAssignment_1_1_0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2744:1: ( rule__Case_stmt__ContainedTypeAssignment_1_1_0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getCase_stmtAccess().getContainedTypeAssignment_1_1_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2745:1: ( rule__Case_stmt__ContainedTypeAssignment_1_1_0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2745:2: rule__Case_stmt__ContainedTypeAssignment_1_1_0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__ContainedTypeAssignment_1_1_0_in_rule__Case_stmt__Alternatives_1_15928);
                    rule__Case_stmt__ContainedTypeAssignment_1_1_0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getCase_stmtAccess().getContainedTypeAssignment_1_1_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2749:6: ( ( rule__Case_stmt__SharedTypeAssignment_1_1_1 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2749:6: ( ( rule__Case_stmt__SharedTypeAssignment_1_1_1 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2750:1: ( rule__Case_stmt__SharedTypeAssignment_1_1_1 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getCase_stmtAccess().getSharedTypeAssignment_1_1_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2751:1: ( rule__Case_stmt__SharedTypeAssignment_1_1_1 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2751:2: rule__Case_stmt__SharedTypeAssignment_1_1_1
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__SharedTypeAssignment_1_1_1_in_rule__Case_stmt__Alternatives_1_15946);
                    rule__Case_stmt__SharedTypeAssignment_1_1_1();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getCase_stmtAccess().getSharedTypeAssignment_1_1_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Case_stmt__Alternatives_1_1


    // $ANTLR start rule__Constr_forward_decl__Alternatives
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2760:1: rule__Constr_forward_decl__Alternatives : ( ( ( rule__Constr_forward_decl__Group_0__0 ) ) | ( ( rule__Constr_forward_decl__Group_1__0 ) ) );
    public final void rule__Constr_forward_decl__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2764:1: ( ( ( rule__Constr_forward_decl__Group_0__0 ) ) | ( ( rule__Constr_forward_decl__Group_1__0 ) ) )
            int alt32=2;
            int LA32_0 = input.LA(1);

            if ( (LA32_0==62) ) {
                alt32=1;
            }
            else if ( (LA32_0==63) ) {
                alt32=2;
            }
            else {
                if (backtracking>0) {failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("2760:1: rule__Constr_forward_decl__Alternatives : ( ( ( rule__Constr_forward_decl__Group_0__0 ) ) | ( ( rule__Constr_forward_decl__Group_1__0 ) ) );", 32, 0, input);

                throw nvae;
            }
            switch (alt32) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2765:1: ( ( rule__Constr_forward_decl__Group_0__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2765:1: ( ( rule__Constr_forward_decl__Group_0__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2766:1: ( rule__Constr_forward_decl__Group_0__0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getConstr_forward_declAccess().getGroup_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2767:1: ( rule__Constr_forward_decl__Group_0__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2767:2: rule__Constr_forward_decl__Group_0__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Constr_forward_decl__Group_0__0_in_rule__Constr_forward_decl__Alternatives5979);
                    rule__Constr_forward_decl__Group_0__0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getConstr_forward_declAccess().getGroup_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2771:6: ( ( rule__Constr_forward_decl__Group_1__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2771:6: ( ( rule__Constr_forward_decl__Group_1__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2772:1: ( rule__Constr_forward_decl__Group_1__0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getConstr_forward_declAccess().getGroup_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2773:1: ( rule__Constr_forward_decl__Group_1__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2773:2: rule__Constr_forward_decl__Group_1__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Constr_forward_decl__Group_1__0_in_rule__Constr_forward_decl__Alternatives5997);
                    rule__Constr_forward_decl__Group_1__0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getConstr_forward_declAccess().getGroup_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Constr_forward_decl__Alternatives


    // $ANTLR start rule__Const_decl__Alternatives_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2782:1: rule__Const_decl__Alternatives_1 : ( ( ( rule__Const_decl__ContainedTypeAssignment_1_0 ) ) | ( ( rule__Const_decl__SharedTypeAssignment_1_1 ) ) );
    public final void rule__Const_decl__Alternatives_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2786:1: ( ( ( rule__Const_decl__ContainedTypeAssignment_1_0 ) ) | ( ( rule__Const_decl__SharedTypeAssignment_1_1 ) ) )
            int alt33=2;
            int LA33_0 = input.LA(1);

            if ( ((LA33_0>=16 && LA33_0<=26)||(LA33_0>=73 && LA33_0<=74)) ) {
                alt33=1;
            }
            else if ( (LA33_0==RULE_ID) ) {
                alt33=2;
            }
            else {
                if (backtracking>0) {failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("2782:1: rule__Const_decl__Alternatives_1 : ( ( ( rule__Const_decl__ContainedTypeAssignment_1_0 ) ) | ( ( rule__Const_decl__SharedTypeAssignment_1_1 ) ) );", 33, 0, input);

                throw nvae;
            }
            switch (alt33) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2787:1: ( ( rule__Const_decl__ContainedTypeAssignment_1_0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2787:1: ( ( rule__Const_decl__ContainedTypeAssignment_1_0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2788:1: ( rule__Const_decl__ContainedTypeAssignment_1_0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getConst_declAccess().getContainedTypeAssignment_1_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2789:1: ( rule__Const_decl__ContainedTypeAssignment_1_0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2789:2: rule__Const_decl__ContainedTypeAssignment_1_0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Const_decl__ContainedTypeAssignment_1_0_in_rule__Const_decl__Alternatives_16030);
                    rule__Const_decl__ContainedTypeAssignment_1_0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getConst_declAccess().getContainedTypeAssignment_1_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2793:6: ( ( rule__Const_decl__SharedTypeAssignment_1_1 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2793:6: ( ( rule__Const_decl__SharedTypeAssignment_1_1 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2794:1: ( rule__Const_decl__SharedTypeAssignment_1_1 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getConst_declAccess().getSharedTypeAssignment_1_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2795:1: ( rule__Const_decl__SharedTypeAssignment_1_1 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2795:2: rule__Const_decl__SharedTypeAssignment_1_1
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Const_decl__SharedTypeAssignment_1_1_in_rule__Const_decl__Alternatives_16048);
                    rule__Const_decl__SharedTypeAssignment_1_1();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getConst_declAccess().getSharedTypeAssignment_1_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Const_decl__Alternatives_1


    // $ANTLR start rule__Const_type__Alternatives
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2804:1: rule__Const_type__Alternatives : ( ( ruleprimitive_def ) | ( rulestringdef_type ) | ( rulewide_stringdef_type ) | ( rulefixed_pt_const_type ) );
    public final void rule__Const_type__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2808:1: ( ( ruleprimitive_def ) | ( rulestringdef_type ) | ( rulewide_stringdef_type ) | ( rulefixed_pt_const_type ) )
            int alt34=4;
            switch ( input.LA(1) ) {
            case 16:
            case 17:
            case 18:
            case 19:
            case 20:
            case 21:
            case 24:
            case 25:
            case 26:
            case 74:
                {
                alt34=1;
                }
                break;
            case 22:
                {
                int LA34_2 = input.LA(2);

                if ( (LA34_2==71) ) {
                    alt34=2;
                }
                else if ( (LA34_2==EOF||LA34_2==RULE_ID) ) {
                    alt34=1;
                }
                else {
                    if (backtracking>0) {failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("2804:1: rule__Const_type__Alternatives : ( ( ruleprimitive_def ) | ( rulestringdef_type ) | ( rulewide_stringdef_type ) | ( rulefixed_pt_const_type ) );", 34, 2, input);

                    throw nvae;
                }
                }
                break;
            case 23:
                {
                int LA34_3 = input.LA(2);

                if ( (LA34_3==71) ) {
                    alt34=3;
                }
                else if ( (LA34_3==EOF||LA34_3==RULE_ID) ) {
                    alt34=1;
                }
                else {
                    if (backtracking>0) {failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("2804:1: rule__Const_type__Alternatives : ( ( ruleprimitive_def ) | ( rulestringdef_type ) | ( rulewide_stringdef_type ) | ( rulefixed_pt_const_type ) );", 34, 3, input);

                    throw nvae;
                }
                }
                break;
            case 73:
                {
                alt34=4;
                }
                break;
            default:
                if (backtracking>0) {failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("2804:1: rule__Const_type__Alternatives : ( ( ruleprimitive_def ) | ( rulestringdef_type ) | ( rulewide_stringdef_type ) | ( rulefixed_pt_const_type ) );", 34, 0, input);

                throw nvae;
            }

            switch (alt34) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2809:1: ( ruleprimitive_def )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2809:1: ( ruleprimitive_def )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2810:1: ruleprimitive_def
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getConst_typeAccess().getPrimitive_defParserRuleCall_0()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_ruleprimitive_def_in_rule__Const_type__Alternatives6081);
                    ruleprimitive_def();
                    _fsp--;
                    if (failed) return ;
                    if ( backtracking==0 ) {
                       after(grammarAccess.getConst_typeAccess().getPrimitive_defParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2815:6: ( rulestringdef_type )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2815:6: ( rulestringdef_type )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2816:1: rulestringdef_type
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getConst_typeAccess().getStringdef_typeParserRuleCall_1()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_rulestringdef_type_in_rule__Const_type__Alternatives6098);
                    rulestringdef_type();
                    _fsp--;
                    if (failed) return ;
                    if ( backtracking==0 ) {
                       after(grammarAccess.getConst_typeAccess().getStringdef_typeParserRuleCall_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2821:6: ( rulewide_stringdef_type )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2821:6: ( rulewide_stringdef_type )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2822:1: rulewide_stringdef_type
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getConst_typeAccess().getWide_stringdef_typeParserRuleCall_2()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_rulewide_stringdef_type_in_rule__Const_type__Alternatives6115);
                    rulewide_stringdef_type();
                    _fsp--;
                    if (failed) return ;
                    if ( backtracking==0 ) {
                       after(grammarAccess.getConst_typeAccess().getWide_stringdef_typeParserRuleCall_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2827:6: ( rulefixed_pt_const_type )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2827:6: ( rulefixed_pt_const_type )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2828:1: rulefixed_pt_const_type
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getConst_typeAccess().getFixed_pt_const_typeParserRuleCall_3()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_rulefixed_pt_const_type_in_rule__Const_type__Alternatives6132);
                    rulefixed_pt_const_type();
                    _fsp--;
                    if (failed) return ;
                    if ( backtracking==0 ) {
                       after(grammarAccess.getConst_typeAccess().getFixed_pt_const_typeParserRuleCall_3()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Const_type__Alternatives


    // $ANTLR start rule__Primitive_def__Alternatives
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2838:1: rule__Primitive_def__Alternatives : ( ( ruleinteger_type ) | ( rulefloating_pt_type ) | ( rulecharstr_type ) | ( ruleother_type ) );
    public final void rule__Primitive_def__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2842:1: ( ( ruleinteger_type ) | ( rulefloating_pt_type ) | ( rulecharstr_type ) | ( ruleother_type ) )
            int alt35=4;
            switch ( input.LA(1) ) {
            case 18:
            case 74:
                {
                alt35=1;
                }
                break;
            case 19:
                {
                int LA35_2 = input.LA(2);

                if ( (LA35_2==EOF||LA35_2==RULE_ID||LA35_2==19||LA35_2==49||LA35_2==72) ) {
                    alt35=1;
                }
                else if ( (LA35_2==17) ) {
                    alt35=2;
                }
                else {
                    if (backtracking>0) {failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("2838:1: rule__Primitive_def__Alternatives : ( ( ruleinteger_type ) | ( rulefloating_pt_type ) | ( rulecharstr_type ) | ( ruleother_type ) );", 35, 2, input);

                    throw nvae;
                }
                }
                break;
            case 16:
            case 17:
                {
                alt35=2;
                }
                break;
            case 20:
            case 21:
            case 22:
            case 23:
                {
                alt35=3;
                }
                break;
            case 24:
            case 25:
            case 26:
                {
                alt35=4;
                }
                break;
            default:
                if (backtracking>0) {failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("2838:1: rule__Primitive_def__Alternatives : ( ( ruleinteger_type ) | ( rulefloating_pt_type ) | ( rulecharstr_type ) | ( ruleother_type ) );", 35, 0, input);

                throw nvae;
            }

            switch (alt35) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2843:1: ( ruleinteger_type )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2843:1: ( ruleinteger_type )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2844:1: ruleinteger_type
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getPrimitive_defAccess().getInteger_typeParserRuleCall_0()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_ruleinteger_type_in_rule__Primitive_def__Alternatives6164);
                    ruleinteger_type();
                    _fsp--;
                    if (failed) return ;
                    if ( backtracking==0 ) {
                       after(grammarAccess.getPrimitive_defAccess().getInteger_typeParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2849:6: ( rulefloating_pt_type )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2849:6: ( rulefloating_pt_type )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2850:1: rulefloating_pt_type
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getPrimitive_defAccess().getFloating_pt_typeParserRuleCall_1()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_rulefloating_pt_type_in_rule__Primitive_def__Alternatives6181);
                    rulefloating_pt_type();
                    _fsp--;
                    if (failed) return ;
                    if ( backtracking==0 ) {
                       after(grammarAccess.getPrimitive_defAccess().getFloating_pt_typeParserRuleCall_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2855:6: ( rulecharstr_type )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2855:6: ( rulecharstr_type )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2856:1: rulecharstr_type
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getPrimitive_defAccess().getCharstr_typeParserRuleCall_2()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_rulecharstr_type_in_rule__Primitive_def__Alternatives6198);
                    rulecharstr_type();
                    _fsp--;
                    if (failed) return ;
                    if ( backtracking==0 ) {
                       after(grammarAccess.getPrimitive_defAccess().getCharstr_typeParserRuleCall_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2861:6: ( ruleother_type )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2861:6: ( ruleother_type )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2862:1: ruleother_type
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getPrimitive_defAccess().getOther_typeParserRuleCall_3()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_ruleother_type_in_rule__Primitive_def__Alternatives6215);
                    ruleother_type();
                    _fsp--;
                    if (failed) return ;
                    if ( backtracking==0 ) {
                       after(grammarAccess.getPrimitive_defAccess().getOther_typeParserRuleCall_3()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Primitive_def__Alternatives


    // $ANTLR start rule__Sequence_type__Alternatives_2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2872:1: rule__Sequence_type__Alternatives_2 : ( ( ( rule__Sequence_type__ContainedTypeAssignment_2_0 ) ) | ( ( rule__Sequence_type__SharedTypeAssignment_2_1 ) ) );
    public final void rule__Sequence_type__Alternatives_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2876:1: ( ( ( rule__Sequence_type__ContainedTypeAssignment_2_0 ) ) | ( ( rule__Sequence_type__SharedTypeAssignment_2_1 ) ) )
            int alt36=2;
            int LA36_0 = input.LA(1);

            if ( ((LA36_0>=16 && LA36_0<=27)||LA36_0==70||(LA36_0>=73 && LA36_0<=74)) ) {
                alt36=1;
            }
            else if ( (LA36_0==RULE_ID) ) {
                alt36=2;
            }
            else {
                if (backtracking>0) {failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("2872:1: rule__Sequence_type__Alternatives_2 : ( ( ( rule__Sequence_type__ContainedTypeAssignment_2_0 ) ) | ( ( rule__Sequence_type__SharedTypeAssignment_2_1 ) ) );", 36, 0, input);

                throw nvae;
            }
            switch (alt36) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2877:1: ( ( rule__Sequence_type__ContainedTypeAssignment_2_0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2877:1: ( ( rule__Sequence_type__ContainedTypeAssignment_2_0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2878:1: ( rule__Sequence_type__ContainedTypeAssignment_2_0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getSequence_typeAccess().getContainedTypeAssignment_2_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2879:1: ( rule__Sequence_type__ContainedTypeAssignment_2_0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2879:2: rule__Sequence_type__ContainedTypeAssignment_2_0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Sequence_type__ContainedTypeAssignment_2_0_in_rule__Sequence_type__Alternatives_26247);
                    rule__Sequence_type__ContainedTypeAssignment_2_0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getSequence_typeAccess().getContainedTypeAssignment_2_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2883:6: ( ( rule__Sequence_type__SharedTypeAssignment_2_1 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2883:6: ( ( rule__Sequence_type__SharedTypeAssignment_2_1 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2884:1: ( rule__Sequence_type__SharedTypeAssignment_2_1 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getSequence_typeAccess().getSharedTypeAssignment_2_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2885:1: ( rule__Sequence_type__SharedTypeAssignment_2_1 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2885:2: rule__Sequence_type__SharedTypeAssignment_2_1
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Sequence_type__SharedTypeAssignment_2_1_in_rule__Sequence_type__Alternatives_26265);
                    rule__Sequence_type__SharedTypeAssignment_2_1();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getSequence_typeAccess().getSharedTypeAssignment_2_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Sequence_type__Alternatives_2


    // $ANTLR start rule__Floating_pt_type__Alternatives
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2894:1: rule__Floating_pt_type__Alternatives : ( ( ( rule__Floating_pt_type__KindAssignment_0 ) ) | ( ( rule__Floating_pt_type__KindAssignment_1 ) ) | ( ( rule__Floating_pt_type__KindAssignment_2 ) ) );
    public final void rule__Floating_pt_type__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2898:1: ( ( ( rule__Floating_pt_type__KindAssignment_0 ) ) | ( ( rule__Floating_pt_type__KindAssignment_1 ) ) | ( ( rule__Floating_pt_type__KindAssignment_2 ) ) )
            int alt37=3;
            switch ( input.LA(1) ) {
            case 16:
                {
                alt37=1;
                }
                break;
            case 17:
                {
                alt37=2;
                }
                break;
            case 19:
                {
                alt37=3;
                }
                break;
            default:
                if (backtracking>0) {failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("2894:1: rule__Floating_pt_type__Alternatives : ( ( ( rule__Floating_pt_type__KindAssignment_0 ) ) | ( ( rule__Floating_pt_type__KindAssignment_1 ) ) | ( ( rule__Floating_pt_type__KindAssignment_2 ) ) );", 37, 0, input);

                throw nvae;
            }

            switch (alt37) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2899:1: ( ( rule__Floating_pt_type__KindAssignment_0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2899:1: ( ( rule__Floating_pt_type__KindAssignment_0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2900:1: ( rule__Floating_pt_type__KindAssignment_0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getFloating_pt_typeAccess().getKindAssignment_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2901:1: ( rule__Floating_pt_type__KindAssignment_0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2901:2: rule__Floating_pt_type__KindAssignment_0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Floating_pt_type__KindAssignment_0_in_rule__Floating_pt_type__Alternatives6298);
                    rule__Floating_pt_type__KindAssignment_0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getFloating_pt_typeAccess().getKindAssignment_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2905:6: ( ( rule__Floating_pt_type__KindAssignment_1 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2905:6: ( ( rule__Floating_pt_type__KindAssignment_1 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2906:1: ( rule__Floating_pt_type__KindAssignment_1 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getFloating_pt_typeAccess().getKindAssignment_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2907:1: ( rule__Floating_pt_type__KindAssignment_1 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2907:2: rule__Floating_pt_type__KindAssignment_1
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Floating_pt_type__KindAssignment_1_in_rule__Floating_pt_type__Alternatives6316);
                    rule__Floating_pt_type__KindAssignment_1();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getFloating_pt_typeAccess().getKindAssignment_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2911:6: ( ( rule__Floating_pt_type__KindAssignment_2 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2911:6: ( ( rule__Floating_pt_type__KindAssignment_2 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2912:1: ( rule__Floating_pt_type__KindAssignment_2 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getFloating_pt_typeAccess().getKindAssignment_2()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2913:1: ( rule__Floating_pt_type__KindAssignment_2 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2913:2: rule__Floating_pt_type__KindAssignment_2
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Floating_pt_type__KindAssignment_2_in_rule__Floating_pt_type__Alternatives6334);
                    rule__Floating_pt_type__KindAssignment_2();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getFloating_pt_typeAccess().getKindAssignment_2()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Floating_pt_type__Alternatives


    // $ANTLR start rule__Integer_type__Alternatives
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2922:1: rule__Integer_type__Alternatives : ( ( ( rule__Integer_type__KindAssignment_0 ) ) | ( ( rule__Integer_type__KindAssignment_1 ) ) | ( ( rule__Integer_type__KindAssignment_2 ) ) | ( ( rule__Integer_type__KindAssignment_3 ) ) | ( ( rule__Integer_type__KindAssignment_4 ) ) | ( ( rule__Integer_type__KindAssignment_5 ) ) );
    public final void rule__Integer_type__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2926:1: ( ( ( rule__Integer_type__KindAssignment_0 ) ) | ( ( rule__Integer_type__KindAssignment_1 ) ) | ( ( rule__Integer_type__KindAssignment_2 ) ) | ( ( rule__Integer_type__KindAssignment_3 ) ) | ( ( rule__Integer_type__KindAssignment_4 ) ) | ( ( rule__Integer_type__KindAssignment_5 ) ) )
            int alt38=6;
            switch ( input.LA(1) ) {
            case 18:
                {
                alt38=1;
                }
                break;
            case 19:
                {
                int LA38_2 = input.LA(2);

                if ( (LA38_2==EOF||LA38_2==RULE_ID||LA38_2==49||LA38_2==51||LA38_2==72) ) {
                    alt38=2;
                }
                else if ( (LA38_2==19) ) {
                    alt38=3;
                }
                else {
                    if (backtracking>0) {failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("2922:1: rule__Integer_type__Alternatives : ( ( ( rule__Integer_type__KindAssignment_0 ) ) | ( ( rule__Integer_type__KindAssignment_1 ) ) | ( ( rule__Integer_type__KindAssignment_2 ) ) | ( ( rule__Integer_type__KindAssignment_3 ) ) | ( ( rule__Integer_type__KindAssignment_4 ) ) | ( ( rule__Integer_type__KindAssignment_5 ) ) );", 38, 2, input);

                    throw nvae;
                }
                }
                break;
            case 74:
                {
                int LA38_3 = input.LA(2);

                if ( (LA38_3==19) ) {
                    int LA38_6 = input.LA(3);

                    if ( (LA38_6==19) ) {
                        alt38=6;
                    }
                    else if ( (LA38_6==EOF||LA38_6==RULE_ID||LA38_6==49||LA38_6==51||LA38_6==72) ) {
                        alt38=5;
                    }
                    else {
                        if (backtracking>0) {failed=true; return ;}
                        NoViableAltException nvae =
                            new NoViableAltException("2922:1: rule__Integer_type__Alternatives : ( ( ( rule__Integer_type__KindAssignment_0 ) ) | ( ( rule__Integer_type__KindAssignment_1 ) ) | ( ( rule__Integer_type__KindAssignment_2 ) ) | ( ( rule__Integer_type__KindAssignment_3 ) ) | ( ( rule__Integer_type__KindAssignment_4 ) ) | ( ( rule__Integer_type__KindAssignment_5 ) ) );", 38, 6, input);

                        throw nvae;
                    }
                }
                else if ( (LA38_3==18) ) {
                    alt38=4;
                }
                else {
                    if (backtracking>0) {failed=true; return ;}
                    NoViableAltException nvae =
                        new NoViableAltException("2922:1: rule__Integer_type__Alternatives : ( ( ( rule__Integer_type__KindAssignment_0 ) ) | ( ( rule__Integer_type__KindAssignment_1 ) ) | ( ( rule__Integer_type__KindAssignment_2 ) ) | ( ( rule__Integer_type__KindAssignment_3 ) ) | ( ( rule__Integer_type__KindAssignment_4 ) ) | ( ( rule__Integer_type__KindAssignment_5 ) ) );", 38, 3, input);

                    throw nvae;
                }
                }
                break;
            default:
                if (backtracking>0) {failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("2922:1: rule__Integer_type__Alternatives : ( ( ( rule__Integer_type__KindAssignment_0 ) ) | ( ( rule__Integer_type__KindAssignment_1 ) ) | ( ( rule__Integer_type__KindAssignment_2 ) ) | ( ( rule__Integer_type__KindAssignment_3 ) ) | ( ( rule__Integer_type__KindAssignment_4 ) ) | ( ( rule__Integer_type__KindAssignment_5 ) ) );", 38, 0, input);

                throw nvae;
            }

            switch (alt38) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2927:1: ( ( rule__Integer_type__KindAssignment_0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2927:1: ( ( rule__Integer_type__KindAssignment_0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2928:1: ( rule__Integer_type__KindAssignment_0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getInteger_typeAccess().getKindAssignment_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2929:1: ( rule__Integer_type__KindAssignment_0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2929:2: rule__Integer_type__KindAssignment_0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Integer_type__KindAssignment_0_in_rule__Integer_type__Alternatives6367);
                    rule__Integer_type__KindAssignment_0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getInteger_typeAccess().getKindAssignment_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2933:6: ( ( rule__Integer_type__KindAssignment_1 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2933:6: ( ( rule__Integer_type__KindAssignment_1 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2934:1: ( rule__Integer_type__KindAssignment_1 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getInteger_typeAccess().getKindAssignment_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2935:1: ( rule__Integer_type__KindAssignment_1 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2935:2: rule__Integer_type__KindAssignment_1
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Integer_type__KindAssignment_1_in_rule__Integer_type__Alternatives6385);
                    rule__Integer_type__KindAssignment_1();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getInteger_typeAccess().getKindAssignment_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2939:6: ( ( rule__Integer_type__KindAssignment_2 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2939:6: ( ( rule__Integer_type__KindAssignment_2 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2940:1: ( rule__Integer_type__KindAssignment_2 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getInteger_typeAccess().getKindAssignment_2()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2941:1: ( rule__Integer_type__KindAssignment_2 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2941:2: rule__Integer_type__KindAssignment_2
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Integer_type__KindAssignment_2_in_rule__Integer_type__Alternatives6403);
                    rule__Integer_type__KindAssignment_2();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getInteger_typeAccess().getKindAssignment_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2945:6: ( ( rule__Integer_type__KindAssignment_3 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2945:6: ( ( rule__Integer_type__KindAssignment_3 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2946:1: ( rule__Integer_type__KindAssignment_3 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getInteger_typeAccess().getKindAssignment_3()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2947:1: ( rule__Integer_type__KindAssignment_3 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2947:2: rule__Integer_type__KindAssignment_3
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Integer_type__KindAssignment_3_in_rule__Integer_type__Alternatives6421);
                    rule__Integer_type__KindAssignment_3();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getInteger_typeAccess().getKindAssignment_3()); 
                    }

                    }


                    }
                    break;
                case 5 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2951:6: ( ( rule__Integer_type__KindAssignment_4 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2951:6: ( ( rule__Integer_type__KindAssignment_4 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2952:1: ( rule__Integer_type__KindAssignment_4 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getInteger_typeAccess().getKindAssignment_4()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2953:1: ( rule__Integer_type__KindAssignment_4 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2953:2: rule__Integer_type__KindAssignment_4
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Integer_type__KindAssignment_4_in_rule__Integer_type__Alternatives6439);
                    rule__Integer_type__KindAssignment_4();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getInteger_typeAccess().getKindAssignment_4()); 
                    }

                    }


                    }
                    break;
                case 6 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2957:6: ( ( rule__Integer_type__KindAssignment_5 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2957:6: ( ( rule__Integer_type__KindAssignment_5 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2958:1: ( rule__Integer_type__KindAssignment_5 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getInteger_typeAccess().getKindAssignment_5()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2959:1: ( rule__Integer_type__KindAssignment_5 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2959:2: rule__Integer_type__KindAssignment_5
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Integer_type__KindAssignment_5_in_rule__Integer_type__Alternatives6457);
                    rule__Integer_type__KindAssignment_5();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getInteger_typeAccess().getKindAssignment_5()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Integer_type__Alternatives


    // $ANTLR start rule__Charstr_type__Alternatives
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2968:1: rule__Charstr_type__Alternatives : ( ( ( rule__Charstr_type__KindAssignment_0 ) ) | ( ( rule__Charstr_type__KindAssignment_1 ) ) | ( ( rule__Charstr_type__KindAssignment_2 ) ) | ( ( rule__Charstr_type__KindAssignment_3 ) ) );
    public final void rule__Charstr_type__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2972:1: ( ( ( rule__Charstr_type__KindAssignment_0 ) ) | ( ( rule__Charstr_type__KindAssignment_1 ) ) | ( ( rule__Charstr_type__KindAssignment_2 ) ) | ( ( rule__Charstr_type__KindAssignment_3 ) ) )
            int alt39=4;
            switch ( input.LA(1) ) {
            case 20:
                {
                alt39=1;
                }
                break;
            case 21:
                {
                alt39=2;
                }
                break;
            case 22:
                {
                alt39=3;
                }
                break;
            case 23:
                {
                alt39=4;
                }
                break;
            default:
                if (backtracking>0) {failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("2968:1: rule__Charstr_type__Alternatives : ( ( ( rule__Charstr_type__KindAssignment_0 ) ) | ( ( rule__Charstr_type__KindAssignment_1 ) ) | ( ( rule__Charstr_type__KindAssignment_2 ) ) | ( ( rule__Charstr_type__KindAssignment_3 ) ) );", 39, 0, input);

                throw nvae;
            }

            switch (alt39) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2973:1: ( ( rule__Charstr_type__KindAssignment_0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2973:1: ( ( rule__Charstr_type__KindAssignment_0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2974:1: ( rule__Charstr_type__KindAssignment_0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getCharstr_typeAccess().getKindAssignment_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2975:1: ( rule__Charstr_type__KindAssignment_0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2975:2: rule__Charstr_type__KindAssignment_0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Charstr_type__KindAssignment_0_in_rule__Charstr_type__Alternatives6490);
                    rule__Charstr_type__KindAssignment_0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getCharstr_typeAccess().getKindAssignment_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2979:6: ( ( rule__Charstr_type__KindAssignment_1 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2979:6: ( ( rule__Charstr_type__KindAssignment_1 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2980:1: ( rule__Charstr_type__KindAssignment_1 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getCharstr_typeAccess().getKindAssignment_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2981:1: ( rule__Charstr_type__KindAssignment_1 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2981:2: rule__Charstr_type__KindAssignment_1
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Charstr_type__KindAssignment_1_in_rule__Charstr_type__Alternatives6508);
                    rule__Charstr_type__KindAssignment_1();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getCharstr_typeAccess().getKindAssignment_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2985:6: ( ( rule__Charstr_type__KindAssignment_2 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2985:6: ( ( rule__Charstr_type__KindAssignment_2 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2986:1: ( rule__Charstr_type__KindAssignment_2 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getCharstr_typeAccess().getKindAssignment_2()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2987:1: ( rule__Charstr_type__KindAssignment_2 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2987:2: rule__Charstr_type__KindAssignment_2
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Charstr_type__KindAssignment_2_in_rule__Charstr_type__Alternatives6526);
                    rule__Charstr_type__KindAssignment_2();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getCharstr_typeAccess().getKindAssignment_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2991:6: ( ( rule__Charstr_type__KindAssignment_3 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2991:6: ( ( rule__Charstr_type__KindAssignment_3 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2992:1: ( rule__Charstr_type__KindAssignment_3 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getCharstr_typeAccess().getKindAssignment_3()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2993:1: ( rule__Charstr_type__KindAssignment_3 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2993:2: rule__Charstr_type__KindAssignment_3
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Charstr_type__KindAssignment_3_in_rule__Charstr_type__Alternatives6544);
                    rule__Charstr_type__KindAssignment_3();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getCharstr_typeAccess().getKindAssignment_3()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Charstr_type__Alternatives


    // $ANTLR start rule__Other_type__Alternatives
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3002:1: rule__Other_type__Alternatives : ( ( ( rule__Other_type__KindAssignment_0 ) ) | ( ( rule__Other_type__KindAssignment_1 ) ) | ( ( rule__Other_type__KindAssignment_2 ) ) );
    public final void rule__Other_type__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3006:1: ( ( ( rule__Other_type__KindAssignment_0 ) ) | ( ( rule__Other_type__KindAssignment_1 ) ) | ( ( rule__Other_type__KindAssignment_2 ) ) )
            int alt40=3;
            switch ( input.LA(1) ) {
            case 24:
                {
                alt40=1;
                }
                break;
            case 25:
                {
                alt40=2;
                }
                break;
            case 26:
                {
                alt40=3;
                }
                break;
            default:
                if (backtracking>0) {failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("3002:1: rule__Other_type__Alternatives : ( ( ( rule__Other_type__KindAssignment_0 ) ) | ( ( rule__Other_type__KindAssignment_1 ) ) | ( ( rule__Other_type__KindAssignment_2 ) ) );", 40, 0, input);

                throw nvae;
            }

            switch (alt40) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3007:1: ( ( rule__Other_type__KindAssignment_0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3007:1: ( ( rule__Other_type__KindAssignment_0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3008:1: ( rule__Other_type__KindAssignment_0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getOther_typeAccess().getKindAssignment_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3009:1: ( rule__Other_type__KindAssignment_0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3009:2: rule__Other_type__KindAssignment_0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Other_type__KindAssignment_0_in_rule__Other_type__Alternatives6577);
                    rule__Other_type__KindAssignment_0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getOther_typeAccess().getKindAssignment_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3013:6: ( ( rule__Other_type__KindAssignment_1 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3013:6: ( ( rule__Other_type__KindAssignment_1 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3014:1: ( rule__Other_type__KindAssignment_1 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getOther_typeAccess().getKindAssignment_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3015:1: ( rule__Other_type__KindAssignment_1 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3015:2: rule__Other_type__KindAssignment_1
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Other_type__KindAssignment_1_in_rule__Other_type__Alternatives6595);
                    rule__Other_type__KindAssignment_1();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getOther_typeAccess().getKindAssignment_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3019:6: ( ( rule__Other_type__KindAssignment_2 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3019:6: ( ( rule__Other_type__KindAssignment_2 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3020:1: ( rule__Other_type__KindAssignment_2 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getOther_typeAccess().getKindAssignment_2()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3021:1: ( rule__Other_type__KindAssignment_2 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3021:2: rule__Other_type__KindAssignment_2
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Other_type__KindAssignment_2_in_rule__Other_type__Alternatives6613);
                    rule__Other_type__KindAssignment_2();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getOther_typeAccess().getKindAssignment_2()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Other_type__Alternatives


    // $ANTLR start rule__Shift_expr__OperatorAlternatives_1_1_0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3030:1: rule__Shift_expr__OperatorAlternatives_1_1_0 : ( ( '>>' ) | ( '<<' ) );
    public final void rule__Shift_expr__OperatorAlternatives_1_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3034:1: ( ( '>>' ) | ( '<<' ) )
            int alt41=2;
            int LA41_0 = input.LA(1);

            if ( (LA41_0==32) ) {
                alt41=1;
            }
            else if ( (LA41_0==33) ) {
                alt41=2;
            }
            else {
                if (backtracking>0) {failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("3030:1: rule__Shift_expr__OperatorAlternatives_1_1_0 : ( ( '>>' ) | ( '<<' ) );", 41, 0, input);

                throw nvae;
            }
            switch (alt41) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3035:1: ( '>>' )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3035:1: ( '>>' )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3036:1: '>>'
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getShift_exprAccess().getOperatorGreaterThanSignGreaterThanSignKeyword_1_1_0_0()); 
                    }
                    match(input,32,FollowSets000.FOLLOW_32_in_rule__Shift_expr__OperatorAlternatives_1_1_06647); if (failed) return ;
                    if ( backtracking==0 ) {
                       after(grammarAccess.getShift_exprAccess().getOperatorGreaterThanSignGreaterThanSignKeyword_1_1_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3043:6: ( '<<' )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3043:6: ( '<<' )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3044:1: '<<'
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getShift_exprAccess().getOperatorLessThanSignLessThanSignKeyword_1_1_0_1()); 
                    }
                    match(input,33,FollowSets000.FOLLOW_33_in_rule__Shift_expr__OperatorAlternatives_1_1_06667); if (failed) return ;
                    if ( backtracking==0 ) {
                       after(grammarAccess.getShift_exprAccess().getOperatorLessThanSignLessThanSignKeyword_1_1_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Shift_expr__OperatorAlternatives_1_1_0


    // $ANTLR start rule__Add_expr__OperatorAlternatives_1_1_0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3056:1: rule__Add_expr__OperatorAlternatives_1_1_0 : ( ( '+' ) | ( '-' ) );
    public final void rule__Add_expr__OperatorAlternatives_1_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3060:1: ( ( '+' ) | ( '-' ) )
            int alt42=2;
            int LA42_0 = input.LA(1);

            if ( (LA42_0==34) ) {
                alt42=1;
            }
            else if ( (LA42_0==35) ) {
                alt42=2;
            }
            else {
                if (backtracking>0) {failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("3056:1: rule__Add_expr__OperatorAlternatives_1_1_0 : ( ( '+' ) | ( '-' ) );", 42, 0, input);

                throw nvae;
            }
            switch (alt42) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3061:1: ( '+' )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3061:1: ( '+' )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3062:1: '+'
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getAdd_exprAccess().getOperatorPlusSignKeyword_1_1_0_0()); 
                    }
                    match(input,34,FollowSets000.FOLLOW_34_in_rule__Add_expr__OperatorAlternatives_1_1_06702); if (failed) return ;
                    if ( backtracking==0 ) {
                       after(grammarAccess.getAdd_exprAccess().getOperatorPlusSignKeyword_1_1_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3069:6: ( '-' )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3069:6: ( '-' )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3070:1: '-'
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getAdd_exprAccess().getOperatorHyphenMinusKeyword_1_1_0_1()); 
                    }
                    match(input,35,FollowSets000.FOLLOW_35_in_rule__Add_expr__OperatorAlternatives_1_1_06722); if (failed) return ;
                    if ( backtracking==0 ) {
                       after(grammarAccess.getAdd_exprAccess().getOperatorHyphenMinusKeyword_1_1_0_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Add_expr__OperatorAlternatives_1_1_0


    // $ANTLR start rule__Mult_expr__OperatorAlternatives_1_1_0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3082:1: rule__Mult_expr__OperatorAlternatives_1_1_0 : ( ( '*' ) | ( '/' ) | ( '%' ) );
    public final void rule__Mult_expr__OperatorAlternatives_1_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3086:1: ( ( '*' ) | ( '/' ) | ( '%' ) )
            int alt43=3;
            switch ( input.LA(1) ) {
            case 36:
                {
                alt43=1;
                }
                break;
            case 37:
                {
                alt43=2;
                }
                break;
            case 38:
                {
                alt43=3;
                }
                break;
            default:
                if (backtracking>0) {failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("3082:1: rule__Mult_expr__OperatorAlternatives_1_1_0 : ( ( '*' ) | ( '/' ) | ( '%' ) );", 43, 0, input);

                throw nvae;
            }

            switch (alt43) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3087:1: ( '*' )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3087:1: ( '*' )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3088:1: '*'
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getMult_exprAccess().getOperatorAsteriskKeyword_1_1_0_0()); 
                    }
                    match(input,36,FollowSets000.FOLLOW_36_in_rule__Mult_expr__OperatorAlternatives_1_1_06757); if (failed) return ;
                    if ( backtracking==0 ) {
                       after(grammarAccess.getMult_exprAccess().getOperatorAsteriskKeyword_1_1_0_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3095:6: ( '/' )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3095:6: ( '/' )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3096:1: '/'
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getMult_exprAccess().getOperatorSolidusKeyword_1_1_0_1()); 
                    }
                    match(input,37,FollowSets000.FOLLOW_37_in_rule__Mult_expr__OperatorAlternatives_1_1_06777); if (failed) return ;
                    if ( backtracking==0 ) {
                       after(grammarAccess.getMult_exprAccess().getOperatorSolidusKeyword_1_1_0_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3103:6: ( '%' )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3103:6: ( '%' )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3104:1: '%'
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getMult_exprAccess().getOperatorPercentSignKeyword_1_1_0_2()); 
                    }
                    match(input,38,FollowSets000.FOLLOW_38_in_rule__Mult_expr__OperatorAlternatives_1_1_06797); if (failed) return ;
                    if ( backtracking==0 ) {
                       after(grammarAccess.getMult_exprAccess().getOperatorPercentSignKeyword_1_1_0_2()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Mult_expr__OperatorAlternatives_1_1_0


    // $ANTLR start rule__Unary_expr__Alternatives
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3116:1: rule__Unary_expr__Alternatives : ( ( ( rule__Unary_expr__Group_0__0 ) ) | ( ruleprimary_expr ) );
    public final void rule__Unary_expr__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3120:1: ( ( ( rule__Unary_expr__Group_0__0 ) ) | ( ruleprimary_expr ) )
            int alt44=2;
            int LA44_0 = input.LA(1);

            if ( ((LA44_0>=34 && LA44_0<=35)||LA44_0==39) ) {
                alt44=1;
            }
            else if ( ((LA44_0>=RULE_INT && LA44_0<=RULE_ID)||LA44_0==50) ) {
                alt44=2;
            }
            else {
                if (backtracking>0) {failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("3116:1: rule__Unary_expr__Alternatives : ( ( ( rule__Unary_expr__Group_0__0 ) ) | ( ruleprimary_expr ) );", 44, 0, input);

                throw nvae;
            }
            switch (alt44) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3121:1: ( ( rule__Unary_expr__Group_0__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3121:1: ( ( rule__Unary_expr__Group_0__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3122:1: ( rule__Unary_expr__Group_0__0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getUnary_exprAccess().getGroup_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3123:1: ( rule__Unary_expr__Group_0__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3123:2: rule__Unary_expr__Group_0__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Unary_expr__Group_0__0_in_rule__Unary_expr__Alternatives6831);
                    rule__Unary_expr__Group_0__0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getUnary_exprAccess().getGroup_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3127:6: ( ruleprimary_expr )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3127:6: ( ruleprimary_expr )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3128:1: ruleprimary_expr
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getUnary_exprAccess().getPrimary_exprParserRuleCall_1()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_ruleprimary_expr_in_rule__Unary_expr__Alternatives6849);
                    ruleprimary_expr();
                    _fsp--;
                    if (failed) return ;
                    if ( backtracking==0 ) {
                       after(grammarAccess.getUnary_exprAccess().getPrimary_exprParserRuleCall_1()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Unary_expr__Alternatives


    // $ANTLR start rule__Unary_operator__Alternatives
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3138:1: rule__Unary_operator__Alternatives : ( ( '-' ) | ( '+' ) | ( '~' ) );
    public final void rule__Unary_operator__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3142:1: ( ( '-' ) | ( '+' ) | ( '~' ) )
            int alt45=3;
            switch ( input.LA(1) ) {
            case 35:
                {
                alt45=1;
                }
                break;
            case 34:
                {
                alt45=2;
                }
                break;
            case 39:
                {
                alt45=3;
                }
                break;
            default:
                if (backtracking>0) {failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("3138:1: rule__Unary_operator__Alternatives : ( ( '-' ) | ( '+' ) | ( '~' ) );", 45, 0, input);

                throw nvae;
            }

            switch (alt45) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3143:1: ( '-' )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3143:1: ( '-' )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3144:1: '-'
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getUnary_operatorAccess().getHyphenMinusKeyword_0()); 
                    }
                    match(input,35,FollowSets000.FOLLOW_35_in_rule__Unary_operator__Alternatives6882); if (failed) return ;
                    if ( backtracking==0 ) {
                       after(grammarAccess.getUnary_operatorAccess().getHyphenMinusKeyword_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3151:6: ( '+' )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3151:6: ( '+' )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3152:1: '+'
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getUnary_operatorAccess().getPlusSignKeyword_1()); 
                    }
                    match(input,34,FollowSets000.FOLLOW_34_in_rule__Unary_operator__Alternatives6902); if (failed) return ;
                    if ( backtracking==0 ) {
                       after(grammarAccess.getUnary_operatorAccess().getPlusSignKeyword_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3159:6: ( '~' )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3159:6: ( '~' )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3160:1: '~'
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getUnary_operatorAccess().getTildeKeyword_2()); 
                    }
                    match(input,39,FollowSets000.FOLLOW_39_in_rule__Unary_operator__Alternatives6922); if (failed) return ;
                    if ( backtracking==0 ) {
                       after(grammarAccess.getUnary_operatorAccess().getTildeKeyword_2()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Unary_operator__Alternatives


    // $ANTLR start rule__Primary_expr__Alternatives
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3172:1: rule__Primary_expr__Alternatives : ( ( ruleconstantDefRef ) | ( rulevalueExpression ) | ( ( rule__Primary_expr__Group_2__0 ) ) );
    public final void rule__Primary_expr__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3176:1: ( ( ruleconstantDefRef ) | ( rulevalueExpression ) | ( ( rule__Primary_expr__Group_2__0 ) ) )
            int alt46=3;
            switch ( input.LA(1) ) {
            case RULE_ID:
                {
                alt46=1;
                }
                break;
            case RULE_INT:
            case RULE_STRING:
            case RULE_HEX_LITERAL:
            case RULE_WIDE_STRING_LITERAL:
            case RULE_FIXED_PT_LITERAL:
            case RULE_FLOATING_PT_LITERAL:
            case RULE_BOOLEAN_LITERAL:
                {
                alt46=2;
                }
                break;
            case 50:
                {
                alt46=3;
                }
                break;
            default:
                if (backtracking>0) {failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("3172:1: rule__Primary_expr__Alternatives : ( ( ruleconstantDefRef ) | ( rulevalueExpression ) | ( ( rule__Primary_expr__Group_2__0 ) ) );", 46, 0, input);

                throw nvae;
            }

            switch (alt46) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3177:1: ( ruleconstantDefRef )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3177:1: ( ruleconstantDefRef )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3178:1: ruleconstantDefRef
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getPrimary_exprAccess().getConstantDefRefParserRuleCall_0()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_ruleconstantDefRef_in_rule__Primary_expr__Alternatives6956);
                    ruleconstantDefRef();
                    _fsp--;
                    if (failed) return ;
                    if ( backtracking==0 ) {
                       after(grammarAccess.getPrimary_exprAccess().getConstantDefRefParserRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3183:6: ( rulevalueExpression )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3183:6: ( rulevalueExpression )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3184:1: rulevalueExpression
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getPrimary_exprAccess().getValueExpressionParserRuleCall_1()); 
                    }
                    pushFollow(FollowSets000.FOLLOW_rulevalueExpression_in_rule__Primary_expr__Alternatives6973);
                    rulevalueExpression();
                    _fsp--;
                    if (failed) return ;
                    if ( backtracking==0 ) {
                       after(grammarAccess.getPrimary_exprAccess().getValueExpressionParserRuleCall_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3189:6: ( ( rule__Primary_expr__Group_2__0 ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3189:6: ( ( rule__Primary_expr__Group_2__0 ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3190:1: ( rule__Primary_expr__Group_2__0 )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getPrimary_exprAccess().getGroup_2()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3191:1: ( rule__Primary_expr__Group_2__0 )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3191:2: rule__Primary_expr__Group_2__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Primary_expr__Group_2__0_in_rule__Primary_expr__Alternatives6990);
                    rule__Primary_expr__Group_2__0();
                    _fsp--;
                    if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getPrimary_exprAccess().getGroup_2()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Primary_expr__Alternatives


    // $ANTLR start rule__Literal__Alternatives
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3200:1: rule__Literal__Alternatives : ( ( RULE_INT ) | ( RULE_STRING ) | ( RULE_HEX_LITERAL ) | ( RULE_WIDE_STRING_LITERAL ) | ( RULE_FIXED_PT_LITERAL ) | ( RULE_FLOATING_PT_LITERAL ) | ( RULE_BOOLEAN_LITERAL ) );
    public final void rule__Literal__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3204:1: ( ( RULE_INT ) | ( RULE_STRING ) | ( RULE_HEX_LITERAL ) | ( RULE_WIDE_STRING_LITERAL ) | ( RULE_FIXED_PT_LITERAL ) | ( RULE_FLOATING_PT_LITERAL ) | ( RULE_BOOLEAN_LITERAL ) )
            int alt47=7;
            switch ( input.LA(1) ) {
            case RULE_INT:
                {
                alt47=1;
                }
                break;
            case RULE_STRING:
                {
                alt47=2;
                }
                break;
            case RULE_HEX_LITERAL:
                {
                alt47=3;
                }
                break;
            case RULE_WIDE_STRING_LITERAL:
                {
                alt47=4;
                }
                break;
            case RULE_FIXED_PT_LITERAL:
                {
                alt47=5;
                }
                break;
            case RULE_FLOATING_PT_LITERAL:
                {
                alt47=6;
                }
                break;
            case RULE_BOOLEAN_LITERAL:
                {
                alt47=7;
                }
                break;
            default:
                if (backtracking>0) {failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("3200:1: rule__Literal__Alternatives : ( ( RULE_INT ) | ( RULE_STRING ) | ( RULE_HEX_LITERAL ) | ( RULE_WIDE_STRING_LITERAL ) | ( RULE_FIXED_PT_LITERAL ) | ( RULE_FLOATING_PT_LITERAL ) | ( RULE_BOOLEAN_LITERAL ) );", 47, 0, input);

                throw nvae;
            }

            switch (alt47) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3205:1: ( RULE_INT )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3205:1: ( RULE_INT )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3206:1: RULE_INT
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getLiteralAccess().getINTTerminalRuleCall_0()); 
                    }
                    match(input,RULE_INT,FollowSets000.FOLLOW_RULE_INT_in_rule__Literal__Alternatives7023); if (failed) return ;
                    if ( backtracking==0 ) {
                       after(grammarAccess.getLiteralAccess().getINTTerminalRuleCall_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3211:6: ( RULE_STRING )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3211:6: ( RULE_STRING )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3212:1: RULE_STRING
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getLiteralAccess().getSTRINGTerminalRuleCall_1()); 
                    }
                    match(input,RULE_STRING,FollowSets000.FOLLOW_RULE_STRING_in_rule__Literal__Alternatives7040); if (failed) return ;
                    if ( backtracking==0 ) {
                       after(grammarAccess.getLiteralAccess().getSTRINGTerminalRuleCall_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3217:6: ( RULE_HEX_LITERAL )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3217:6: ( RULE_HEX_LITERAL )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3218:1: RULE_HEX_LITERAL
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getLiteralAccess().getHEX_LITERALTerminalRuleCall_2()); 
                    }
                    match(input,RULE_HEX_LITERAL,FollowSets000.FOLLOW_RULE_HEX_LITERAL_in_rule__Literal__Alternatives7057); if (failed) return ;
                    if ( backtracking==0 ) {
                       after(grammarAccess.getLiteralAccess().getHEX_LITERALTerminalRuleCall_2()); 
                    }

                    }


                    }
                    break;
                case 4 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3223:6: ( RULE_WIDE_STRING_LITERAL )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3223:6: ( RULE_WIDE_STRING_LITERAL )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3224:1: RULE_WIDE_STRING_LITERAL
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getLiteralAccess().getWIDE_STRING_LITERALTerminalRuleCall_3()); 
                    }
                    match(input,RULE_WIDE_STRING_LITERAL,FollowSets000.FOLLOW_RULE_WIDE_STRING_LITERAL_in_rule__Literal__Alternatives7074); if (failed) return ;
                    if ( backtracking==0 ) {
                       after(grammarAccess.getLiteralAccess().getWIDE_STRING_LITERALTerminalRuleCall_3()); 
                    }

                    }


                    }
                    break;
                case 5 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3229:6: ( RULE_FIXED_PT_LITERAL )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3229:6: ( RULE_FIXED_PT_LITERAL )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3230:1: RULE_FIXED_PT_LITERAL
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getLiteralAccess().getFIXED_PT_LITERALTerminalRuleCall_4()); 
                    }
                    match(input,RULE_FIXED_PT_LITERAL,FollowSets000.FOLLOW_RULE_FIXED_PT_LITERAL_in_rule__Literal__Alternatives7091); if (failed) return ;
                    if ( backtracking==0 ) {
                       after(grammarAccess.getLiteralAccess().getFIXED_PT_LITERALTerminalRuleCall_4()); 
                    }

                    }


                    }
                    break;
                case 6 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3235:6: ( RULE_FLOATING_PT_LITERAL )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3235:6: ( RULE_FLOATING_PT_LITERAL )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3236:1: RULE_FLOATING_PT_LITERAL
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getLiteralAccess().getFLOATING_PT_LITERALTerminalRuleCall_5()); 
                    }
                    match(input,RULE_FLOATING_PT_LITERAL,FollowSets000.FOLLOW_RULE_FLOATING_PT_LITERAL_in_rule__Literal__Alternatives7108); if (failed) return ;
                    if ( backtracking==0 ) {
                       after(grammarAccess.getLiteralAccess().getFLOATING_PT_LITERALTerminalRuleCall_5()); 
                    }

                    }


                    }
                    break;
                case 7 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3241:6: ( RULE_BOOLEAN_LITERAL )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3241:6: ( RULE_BOOLEAN_LITERAL )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3242:1: RULE_BOOLEAN_LITERAL
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getLiteralAccess().getBOOLEAN_LITERALTerminalRuleCall_6()); 
                    }
                    match(input,RULE_BOOLEAN_LITERAL,FollowSets000.FOLLOW_RULE_BOOLEAN_LITERAL_in_rule__Literal__Alternatives7125); if (failed) return ;
                    if ( backtracking==0 ) {
                       after(grammarAccess.getLiteralAccess().getBOOLEAN_LITERALTerminalRuleCall_6()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Literal__Alternatives


    // $ANTLR start rule__Param_attribute__Alternatives
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3252:1: rule__Param_attribute__Alternatives : ( ( ( 'in' ) ) | ( ( 'out' ) ) | ( ( 'inout' ) ) );
    public final void rule__Param_attribute__Alternatives() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3256:1: ( ( ( 'in' ) ) | ( ( 'out' ) ) | ( ( 'inout' ) ) )
            int alt48=3;
            switch ( input.LA(1) ) {
            case 40:
                {
                alt48=1;
                }
                break;
            case 41:
                {
                alt48=2;
                }
                break;
            case 42:
                {
                alt48=3;
                }
                break;
            default:
                if (backtracking>0) {failed=true; return ;}
                NoViableAltException nvae =
                    new NoViableAltException("3252:1: rule__Param_attribute__Alternatives : ( ( ( 'in' ) ) | ( ( 'out' ) ) | ( ( 'inout' ) ) );", 48, 0, input);

                throw nvae;
            }

            switch (alt48) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3257:1: ( ( 'in' ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3257:1: ( ( 'in' ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3258:1: ( 'in' )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getParam_attributeAccess().getPARAM_INEnumLiteralDeclaration_0()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3259:1: ( 'in' )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3259:3: 'in'
                    {
                    match(input,40,FollowSets000.FOLLOW_40_in_rule__Param_attribute__Alternatives7158); if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getParam_attributeAccess().getPARAM_INEnumLiteralDeclaration_0()); 
                    }

                    }


                    }
                    break;
                case 2 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3264:6: ( ( 'out' ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3264:6: ( ( 'out' ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3265:1: ( 'out' )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getParam_attributeAccess().getPARAM_OUTEnumLiteralDeclaration_1()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3266:1: ( 'out' )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3266:3: 'out'
                    {
                    match(input,41,FollowSets000.FOLLOW_41_in_rule__Param_attribute__Alternatives7179); if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getParam_attributeAccess().getPARAM_OUTEnumLiteralDeclaration_1()); 
                    }

                    }


                    }
                    break;
                case 3 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3271:6: ( ( 'inout' ) )
                    {
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3271:6: ( ( 'inout' ) )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3272:1: ( 'inout' )
                    {
                    if ( backtracking==0 ) {
                       before(grammarAccess.getParam_attributeAccess().getPARAM_INOUTEnumLiteralDeclaration_2()); 
                    }
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3273:1: ( 'inout' )
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3273:3: 'inout'
                    {
                    match(input,42,FollowSets000.FOLLOW_42_in_rule__Param_attribute__Alternatives7200); if (failed) return ;

                    }

                    if ( backtracking==0 ) {
                       after(grammarAccess.getParam_attributeAccess().getPARAM_INOUTEnumLiteralDeclaration_2()); 
                    }

                    }


                    }
                    break;

            }
        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Param_attribute__Alternatives


    // $ANTLR start rule__Specification__Group__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3285:1: rule__Specification__Group__0 : rule__Specification__Group__0__Impl rule__Specification__Group__1 ;
    public final void rule__Specification__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3289:1: ( rule__Specification__Group__0__Impl rule__Specification__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3290:2: rule__Specification__Group__0__Impl rule__Specification__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Specification__Group__0__Impl_in_rule__Specification__Group__07233);
            rule__Specification__Group__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Specification__Group__1_in_rule__Specification__Group__07236);
            rule__Specification__Group__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Specification__Group__0


    // $ANTLR start rule__Specification__Group__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3297:1: rule__Specification__Group__0__Impl : ( () ) ;
    public final void rule__Specification__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3301:1: ( ( () ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3302:1: ( () )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3302:1: ( () )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3303:1: ()
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getSpecificationAccess().getTranslationUnitAction_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3304:1: ()
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3306:1: 
            {
            }

            if ( backtracking==0 ) {
               after(grammarAccess.getSpecificationAccess().getTranslationUnitAction_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Specification__Group__0__Impl


    // $ANTLR start rule__Specification__Group__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3316:1: rule__Specification__Group__1 : rule__Specification__Group__1__Impl rule__Specification__Group__2 ;
    public final void rule__Specification__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3320:1: ( rule__Specification__Group__1__Impl rule__Specification__Group__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3321:2: rule__Specification__Group__1__Impl rule__Specification__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Specification__Group__1__Impl_in_rule__Specification__Group__17294);
            rule__Specification__Group__1__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Specification__Group__2_in_rule__Specification__Group__17297);
            rule__Specification__Group__2();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Specification__Group__1


    // $ANTLR start rule__Specification__Group__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3328:1: rule__Specification__Group__1__Impl : ( ( rule__Specification__IncludesAssignment_1 )* ) ;
    public final void rule__Specification__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3332:1: ( ( ( rule__Specification__IncludesAssignment_1 )* ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3333:1: ( ( rule__Specification__IncludesAssignment_1 )* )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3333:1: ( ( rule__Specification__IncludesAssignment_1 )* )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3334:1: ( rule__Specification__IncludesAssignment_1 )*
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getSpecificationAccess().getIncludesAssignment_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3335:1: ( rule__Specification__IncludesAssignment_1 )*
            loop49:
            do {
                int alt49=2;
                int LA49_0 = input.LA(1);

                if ( (LA49_0==43) ) {
                    alt49=1;
                }


                switch (alt49) {
            	case 1 :
            	    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3335:2: rule__Specification__IncludesAssignment_1
            	    {
            	    pushFollow(FollowSets000.FOLLOW_rule__Specification__IncludesAssignment_1_in_rule__Specification__Group__1__Impl7324);
            	    rule__Specification__IncludesAssignment_1();
            	    _fsp--;
            	    if (failed) return ;

            	    }
            	    break;

            	default :
            	    break loop49;
                }
            } while (true);

            if ( backtracking==0 ) {
               after(grammarAccess.getSpecificationAccess().getIncludesAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Specification__Group__1__Impl


    // $ANTLR start rule__Specification__Group__2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3345:1: rule__Specification__Group__2 : rule__Specification__Group__2__Impl ;
    public final void rule__Specification__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3349:1: ( rule__Specification__Group__2__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3350:2: rule__Specification__Group__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Specification__Group__2__Impl_in_rule__Specification__Group__27355);
            rule__Specification__Group__2__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Specification__Group__2


    // $ANTLR start rule__Specification__Group__2__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3356:1: rule__Specification__Group__2__Impl : ( ( rule__Specification__ContainsAssignment_2 )* ) ;
    public final void rule__Specification__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3360:1: ( ( ( rule__Specification__ContainsAssignment_2 )* ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3361:1: ( ( rule__Specification__ContainsAssignment_2 )* )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3361:1: ( ( rule__Specification__ContainsAssignment_2 )* )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3362:1: ( rule__Specification__ContainsAssignment_2 )*
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getSpecificationAccess().getContainsAssignment_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3363:1: ( rule__Specification__ContainsAssignment_2 )*
            loop50:
            do {
                int alt50=2;
                int LA50_0 = input.LA(1);

                if ( ((LA50_0>=30 && LA50_0<=31)||LA50_0==44||LA50_0==47||(LA50_0>=57 && LA50_0<=59)||(LA50_0>=62 && LA50_0<=63)||(LA50_0>=67 && LA50_0<=68)) ) {
                    alt50=1;
                }


                switch (alt50) {
            	case 1 :
            	    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3363:2: rule__Specification__ContainsAssignment_2
            	    {
            	    pushFollow(FollowSets000.FOLLOW_rule__Specification__ContainsAssignment_2_in_rule__Specification__Group__2__Impl7382);
            	    rule__Specification__ContainsAssignment_2();
            	    _fsp--;
            	    if (failed) return ;

            	    }
            	    break;

            	default :
            	    break loop50;
                }
            } while (true);

            if ( backtracking==0 ) {
               after(grammarAccess.getSpecificationAccess().getContainsAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Specification__Group__2__Impl


    // $ANTLR start rule__Include_decl__Group__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3379:1: rule__Include_decl__Group__0 : rule__Include_decl__Group__0__Impl rule__Include_decl__Group__1 ;
    public final void rule__Include_decl__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3383:1: ( rule__Include_decl__Group__0__Impl rule__Include_decl__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3384:2: rule__Include_decl__Group__0__Impl rule__Include_decl__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Include_decl__Group__0__Impl_in_rule__Include_decl__Group__07419);
            rule__Include_decl__Group__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Include_decl__Group__1_in_rule__Include_decl__Group__07422);
            rule__Include_decl__Group__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Include_decl__Group__0


    // $ANTLR start rule__Include_decl__Group__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3391:1: rule__Include_decl__Group__0__Impl : ( '#include' ) ;
    public final void rule__Include_decl__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3395:1: ( ( '#include' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3396:1: ( '#include' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3396:1: ( '#include' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3397:1: '#include'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getInclude_declAccess().getIncludeKeyword_0()); 
            }
            match(input,43,FollowSets000.FOLLOW_43_in_rule__Include_decl__Group__0__Impl7450); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getInclude_declAccess().getIncludeKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Include_decl__Group__0__Impl


    // $ANTLR start rule__Include_decl__Group__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3410:1: rule__Include_decl__Group__1 : rule__Include_decl__Group__1__Impl ;
    public final void rule__Include_decl__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3414:1: ( rule__Include_decl__Group__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3415:2: rule__Include_decl__Group__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Include_decl__Group__1__Impl_in_rule__Include_decl__Group__17481);
            rule__Include_decl__Group__1__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Include_decl__Group__1


    // $ANTLR start rule__Include_decl__Group__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3421:1: rule__Include_decl__Group__1__Impl : ( ( rule__Include_decl__ImportURIAssignment_1 ) ) ;
    public final void rule__Include_decl__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3425:1: ( ( ( rule__Include_decl__ImportURIAssignment_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3426:1: ( ( rule__Include_decl__ImportURIAssignment_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3426:1: ( ( rule__Include_decl__ImportURIAssignment_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3427:1: ( rule__Include_decl__ImportURIAssignment_1 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getInclude_declAccess().getImportURIAssignment_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3428:1: ( rule__Include_decl__ImportURIAssignment_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3428:2: rule__Include_decl__ImportURIAssignment_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Include_decl__ImportURIAssignment_1_in_rule__Include_decl__Group__1__Impl7508);
            rule__Include_decl__ImportURIAssignment_1();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getInclude_declAccess().getImportURIAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Include_decl__Group__1__Impl


    // $ANTLR start rule__Definition__Group_0__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3442:1: rule__Definition__Group_0__0 : rule__Definition__Group_0__0__Impl rule__Definition__Group_0__1 ;
    public final void rule__Definition__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3446:1: ( rule__Definition__Group_0__0__Impl rule__Definition__Group_0__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3447:2: rule__Definition__Group_0__0__Impl rule__Definition__Group_0__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Definition__Group_0__0__Impl_in_rule__Definition__Group_0__07542);
            rule__Definition__Group_0__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Definition__Group_0__1_in_rule__Definition__Group_0__07545);
            rule__Definition__Group_0__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Definition__Group_0__0


    // $ANTLR start rule__Definition__Group_0__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3454:1: rule__Definition__Group_0__0__Impl : ( ruletype_decl ) ;
    public final void rule__Definition__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3458:1: ( ( ruletype_decl ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3459:1: ( ruletype_decl )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3459:1: ( ruletype_decl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3460:1: ruletype_decl
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getDefinitionAccess().getType_declParserRuleCall_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruletype_decl_in_rule__Definition__Group_0__0__Impl7572);
            ruletype_decl();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getDefinitionAccess().getType_declParserRuleCall_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Definition__Group_0__0__Impl


    // $ANTLR start rule__Definition__Group_0__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3471:1: rule__Definition__Group_0__1 : rule__Definition__Group_0__1__Impl ;
    public final void rule__Definition__Group_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3475:1: ( rule__Definition__Group_0__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3476:2: rule__Definition__Group_0__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Definition__Group_0__1__Impl_in_rule__Definition__Group_0__17601);
            rule__Definition__Group_0__1__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Definition__Group_0__1


    // $ANTLR start rule__Definition__Group_0__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3482:1: rule__Definition__Group_0__1__Impl : ( ';' ) ;
    public final void rule__Definition__Group_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3486:1: ( ( ';' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3487:1: ( ';' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3487:1: ( ';' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3488:1: ';'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getDefinitionAccess().getSemicolonKeyword_0_1()); 
            }
            match(input,29,FollowSets000.FOLLOW_29_in_rule__Definition__Group_0__1__Impl7629); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getDefinitionAccess().getSemicolonKeyword_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Definition__Group_0__1__Impl


    // $ANTLR start rule__Definition__Group_1__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3505:1: rule__Definition__Group_1__0 : rule__Definition__Group_1__0__Impl rule__Definition__Group_1__1 ;
    public final void rule__Definition__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3509:1: ( rule__Definition__Group_1__0__Impl rule__Definition__Group_1__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3510:2: rule__Definition__Group_1__0__Impl rule__Definition__Group_1__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Definition__Group_1__0__Impl_in_rule__Definition__Group_1__07664);
            rule__Definition__Group_1__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Definition__Group_1__1_in_rule__Definition__Group_1__07667);
            rule__Definition__Group_1__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Definition__Group_1__0


    // $ANTLR start rule__Definition__Group_1__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3517:1: rule__Definition__Group_1__0__Impl : ( ruleconst_decl ) ;
    public final void rule__Definition__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3521:1: ( ( ruleconst_decl ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3522:1: ( ruleconst_decl )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3522:1: ( ruleconst_decl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3523:1: ruleconst_decl
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getDefinitionAccess().getConst_declParserRuleCall_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleconst_decl_in_rule__Definition__Group_1__0__Impl7694);
            ruleconst_decl();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getDefinitionAccess().getConst_declParserRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Definition__Group_1__0__Impl


    // $ANTLR start rule__Definition__Group_1__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3534:1: rule__Definition__Group_1__1 : rule__Definition__Group_1__1__Impl ;
    public final void rule__Definition__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3538:1: ( rule__Definition__Group_1__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3539:2: rule__Definition__Group_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Definition__Group_1__1__Impl_in_rule__Definition__Group_1__17723);
            rule__Definition__Group_1__1__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Definition__Group_1__1


    // $ANTLR start rule__Definition__Group_1__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3545:1: rule__Definition__Group_1__1__Impl : ( ';' ) ;
    public final void rule__Definition__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3549:1: ( ( ';' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3550:1: ( ';' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3550:1: ( ';' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3551:1: ';'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getDefinitionAccess().getSemicolonKeyword_1_1()); 
            }
            match(input,29,FollowSets000.FOLLOW_29_in_rule__Definition__Group_1__1__Impl7751); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getDefinitionAccess().getSemicolonKeyword_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Definition__Group_1__1__Impl


    // $ANTLR start rule__Definition__Group_2__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3568:1: rule__Definition__Group_2__0 : rule__Definition__Group_2__0__Impl rule__Definition__Group_2__1 ;
    public final void rule__Definition__Group_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3572:1: ( rule__Definition__Group_2__0__Impl rule__Definition__Group_2__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3573:2: rule__Definition__Group_2__0__Impl rule__Definition__Group_2__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Definition__Group_2__0__Impl_in_rule__Definition__Group_2__07786);
            rule__Definition__Group_2__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Definition__Group_2__1_in_rule__Definition__Group_2__07789);
            rule__Definition__Group_2__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Definition__Group_2__0


    // $ANTLR start rule__Definition__Group_2__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3580:1: rule__Definition__Group_2__0__Impl : ( ruleexcept_decl ) ;
    public final void rule__Definition__Group_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3584:1: ( ( ruleexcept_decl ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3585:1: ( ruleexcept_decl )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3585:1: ( ruleexcept_decl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3586:1: ruleexcept_decl
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getDefinitionAccess().getExcept_declParserRuleCall_2_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleexcept_decl_in_rule__Definition__Group_2__0__Impl7816);
            ruleexcept_decl();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getDefinitionAccess().getExcept_declParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Definition__Group_2__0__Impl


    // $ANTLR start rule__Definition__Group_2__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3597:1: rule__Definition__Group_2__1 : rule__Definition__Group_2__1__Impl ;
    public final void rule__Definition__Group_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3601:1: ( rule__Definition__Group_2__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3602:2: rule__Definition__Group_2__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Definition__Group_2__1__Impl_in_rule__Definition__Group_2__17845);
            rule__Definition__Group_2__1__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Definition__Group_2__1


    // $ANTLR start rule__Definition__Group_2__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3608:1: rule__Definition__Group_2__1__Impl : ( ';' ) ;
    public final void rule__Definition__Group_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3612:1: ( ( ';' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3613:1: ( ';' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3613:1: ( ';' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3614:1: ';'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getDefinitionAccess().getSemicolonKeyword_2_1()); 
            }
            match(input,29,FollowSets000.FOLLOW_29_in_rule__Definition__Group_2__1__Impl7873); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getDefinitionAccess().getSemicolonKeyword_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Definition__Group_2__1__Impl


    // $ANTLR start rule__Definition__Group_3__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3631:1: rule__Definition__Group_3__0 : rule__Definition__Group_3__0__Impl rule__Definition__Group_3__1 ;
    public final void rule__Definition__Group_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3635:1: ( rule__Definition__Group_3__0__Impl rule__Definition__Group_3__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3636:2: rule__Definition__Group_3__0__Impl rule__Definition__Group_3__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Definition__Group_3__0__Impl_in_rule__Definition__Group_3__07908);
            rule__Definition__Group_3__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Definition__Group_3__1_in_rule__Definition__Group_3__07911);
            rule__Definition__Group_3__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Definition__Group_3__0


    // $ANTLR start rule__Definition__Group_3__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3643:1: rule__Definition__Group_3__0__Impl : ( ruleinterface_decl ) ;
    public final void rule__Definition__Group_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3647:1: ( ( ruleinterface_decl ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3648:1: ( ruleinterface_decl )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3648:1: ( ruleinterface_decl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3649:1: ruleinterface_decl
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getDefinitionAccess().getInterface_declParserRuleCall_3_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleinterface_decl_in_rule__Definition__Group_3__0__Impl7938);
            ruleinterface_decl();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getDefinitionAccess().getInterface_declParserRuleCall_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Definition__Group_3__0__Impl


    // $ANTLR start rule__Definition__Group_3__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3660:1: rule__Definition__Group_3__1 : rule__Definition__Group_3__1__Impl ;
    public final void rule__Definition__Group_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3664:1: ( rule__Definition__Group_3__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3665:2: rule__Definition__Group_3__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Definition__Group_3__1__Impl_in_rule__Definition__Group_3__17967);
            rule__Definition__Group_3__1__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Definition__Group_3__1


    // $ANTLR start rule__Definition__Group_3__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3671:1: rule__Definition__Group_3__1__Impl : ( ';' ) ;
    public final void rule__Definition__Group_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3675:1: ( ( ';' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3676:1: ( ';' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3676:1: ( ';' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3677:1: ';'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getDefinitionAccess().getSemicolonKeyword_3_1()); 
            }
            match(input,29,FollowSets000.FOLLOW_29_in_rule__Definition__Group_3__1__Impl7995); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getDefinitionAccess().getSemicolonKeyword_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Definition__Group_3__1__Impl


    // $ANTLR start rule__Definition__Group_4__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3694:1: rule__Definition__Group_4__0 : rule__Definition__Group_4__0__Impl rule__Definition__Group_4__1 ;
    public final void rule__Definition__Group_4__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3698:1: ( rule__Definition__Group_4__0__Impl rule__Definition__Group_4__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3699:2: rule__Definition__Group_4__0__Impl rule__Definition__Group_4__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Definition__Group_4__0__Impl_in_rule__Definition__Group_4__08030);
            rule__Definition__Group_4__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Definition__Group_4__1_in_rule__Definition__Group_4__08033);
            rule__Definition__Group_4__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Definition__Group_4__0


    // $ANTLR start rule__Definition__Group_4__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3706:1: rule__Definition__Group_4__0__Impl : ( ruleinterface_fwd ) ;
    public final void rule__Definition__Group_4__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3710:1: ( ( ruleinterface_fwd ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3711:1: ( ruleinterface_fwd )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3711:1: ( ruleinterface_fwd )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3712:1: ruleinterface_fwd
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getDefinitionAccess().getInterface_fwdParserRuleCall_4_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleinterface_fwd_in_rule__Definition__Group_4__0__Impl8060);
            ruleinterface_fwd();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getDefinitionAccess().getInterface_fwdParserRuleCall_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Definition__Group_4__0__Impl


    // $ANTLR start rule__Definition__Group_4__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3723:1: rule__Definition__Group_4__1 : rule__Definition__Group_4__1__Impl ;
    public final void rule__Definition__Group_4__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3727:1: ( rule__Definition__Group_4__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3728:2: rule__Definition__Group_4__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Definition__Group_4__1__Impl_in_rule__Definition__Group_4__18089);
            rule__Definition__Group_4__1__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Definition__Group_4__1


    // $ANTLR start rule__Definition__Group_4__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3734:1: rule__Definition__Group_4__1__Impl : ( ';' ) ;
    public final void rule__Definition__Group_4__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3738:1: ( ( ';' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3739:1: ( ';' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3739:1: ( ';' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3740:1: ';'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getDefinitionAccess().getSemicolonKeyword_4_1()); 
            }
            match(input,29,FollowSets000.FOLLOW_29_in_rule__Definition__Group_4__1__Impl8117); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getDefinitionAccess().getSemicolonKeyword_4_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Definition__Group_4__1__Impl


    // $ANTLR start rule__Definition__Group_5__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3757:1: rule__Definition__Group_5__0 : rule__Definition__Group_5__0__Impl rule__Definition__Group_5__1 ;
    public final void rule__Definition__Group_5__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3761:1: ( rule__Definition__Group_5__0__Impl rule__Definition__Group_5__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3762:2: rule__Definition__Group_5__0__Impl rule__Definition__Group_5__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Definition__Group_5__0__Impl_in_rule__Definition__Group_5__08152);
            rule__Definition__Group_5__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Definition__Group_5__1_in_rule__Definition__Group_5__08155);
            rule__Definition__Group_5__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Definition__Group_5__0


    // $ANTLR start rule__Definition__Group_5__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3769:1: rule__Definition__Group_5__0__Impl : ( rulemodule ) ;
    public final void rule__Definition__Group_5__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3773:1: ( ( rulemodule ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3774:1: ( rulemodule )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3774:1: ( rulemodule )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3775:1: rulemodule
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getDefinitionAccess().getModuleParserRuleCall_5_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulemodule_in_rule__Definition__Group_5__0__Impl8182);
            rulemodule();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getDefinitionAccess().getModuleParserRuleCall_5_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Definition__Group_5__0__Impl


    // $ANTLR start rule__Definition__Group_5__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3786:1: rule__Definition__Group_5__1 : rule__Definition__Group_5__1__Impl ;
    public final void rule__Definition__Group_5__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3790:1: ( rule__Definition__Group_5__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3791:2: rule__Definition__Group_5__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Definition__Group_5__1__Impl_in_rule__Definition__Group_5__18211);
            rule__Definition__Group_5__1__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Definition__Group_5__1


    // $ANTLR start rule__Definition__Group_5__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3797:1: rule__Definition__Group_5__1__Impl : ( ';' ) ;
    public final void rule__Definition__Group_5__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3801:1: ( ( ';' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3802:1: ( ';' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3802:1: ( ';' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3803:1: ';'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getDefinitionAccess().getSemicolonKeyword_5_1()); 
            }
            match(input,29,FollowSets000.FOLLOW_29_in_rule__Definition__Group_5__1__Impl8239); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getDefinitionAccess().getSemicolonKeyword_5_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Definition__Group_5__1__Impl


    // $ANTLR start rule__Module__Group__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3820:1: rule__Module__Group__0 : rule__Module__Group__0__Impl rule__Module__Group__1 ;
    public final void rule__Module__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3824:1: ( rule__Module__Group__0__Impl rule__Module__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3825:2: rule__Module__Group__0__Impl rule__Module__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Module__Group__0__Impl_in_rule__Module__Group__08274);
            rule__Module__Group__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Module__Group__1_in_rule__Module__Group__08277);
            rule__Module__Group__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Module__Group__0


    // $ANTLR start rule__Module__Group__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3832:1: rule__Module__Group__0__Impl : ( 'module' ) ;
    public final void rule__Module__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3836:1: ( ( 'module' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3837:1: ( 'module' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3837:1: ( 'module' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3838:1: 'module'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getModuleAccess().getModuleKeyword_0()); 
            }
            match(input,44,FollowSets000.FOLLOW_44_in_rule__Module__Group__0__Impl8305); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getModuleAccess().getModuleKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Module__Group__0__Impl


    // $ANTLR start rule__Module__Group__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3851:1: rule__Module__Group__1 : rule__Module__Group__1__Impl rule__Module__Group__2 ;
    public final void rule__Module__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3855:1: ( rule__Module__Group__1__Impl rule__Module__Group__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3856:2: rule__Module__Group__1__Impl rule__Module__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Module__Group__1__Impl_in_rule__Module__Group__18336);
            rule__Module__Group__1__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Module__Group__2_in_rule__Module__Group__18339);
            rule__Module__Group__2();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Module__Group__1


    // $ANTLR start rule__Module__Group__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3863:1: rule__Module__Group__1__Impl : ( ( rule__Module__IdentifierAssignment_1 ) ) ;
    public final void rule__Module__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3867:1: ( ( ( rule__Module__IdentifierAssignment_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3868:1: ( ( rule__Module__IdentifierAssignment_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3868:1: ( ( rule__Module__IdentifierAssignment_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3869:1: ( rule__Module__IdentifierAssignment_1 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getModuleAccess().getIdentifierAssignment_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3870:1: ( rule__Module__IdentifierAssignment_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3870:2: rule__Module__IdentifierAssignment_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Module__IdentifierAssignment_1_in_rule__Module__Group__1__Impl8366);
            rule__Module__IdentifierAssignment_1();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getModuleAccess().getIdentifierAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Module__Group__1__Impl


    // $ANTLR start rule__Module__Group__2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3880:1: rule__Module__Group__2 : rule__Module__Group__2__Impl rule__Module__Group__3 ;
    public final void rule__Module__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3884:1: ( rule__Module__Group__2__Impl rule__Module__Group__3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3885:2: rule__Module__Group__2__Impl rule__Module__Group__3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Module__Group__2__Impl_in_rule__Module__Group__28396);
            rule__Module__Group__2__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Module__Group__3_in_rule__Module__Group__28399);
            rule__Module__Group__3();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Module__Group__2


    // $ANTLR start rule__Module__Group__2__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3892:1: rule__Module__Group__2__Impl : ( '{' ) ;
    public final void rule__Module__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3896:1: ( ( '{' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3897:1: ( '{' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3897:1: ( '{' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3898:1: '{'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getModuleAccess().getLeftCurlyBracketKeyword_2()); 
            }
            match(input,45,FollowSets000.FOLLOW_45_in_rule__Module__Group__2__Impl8427); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getModuleAccess().getLeftCurlyBracketKeyword_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Module__Group__2__Impl


    // $ANTLR start rule__Module__Group__3
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3911:1: rule__Module__Group__3 : rule__Module__Group__3__Impl rule__Module__Group__4 ;
    public final void rule__Module__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3915:1: ( rule__Module__Group__3__Impl rule__Module__Group__4 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3916:2: rule__Module__Group__3__Impl rule__Module__Group__4
            {
            pushFollow(FollowSets000.FOLLOW_rule__Module__Group__3__Impl_in_rule__Module__Group__38458);
            rule__Module__Group__3__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Module__Group__4_in_rule__Module__Group__38461);
            rule__Module__Group__4();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Module__Group__3


    // $ANTLR start rule__Module__Group__3__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3923:1: rule__Module__Group__3__Impl : ( ( rule__Module__Alternatives_3 )* ) ;
    public final void rule__Module__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3927:1: ( ( ( rule__Module__Alternatives_3 )* ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3928:1: ( ( rule__Module__Alternatives_3 )* )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3928:1: ( ( rule__Module__Alternatives_3 )* )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3929:1: ( rule__Module__Alternatives_3 )*
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getModuleAccess().getAlternatives_3()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3930:1: ( rule__Module__Alternatives_3 )*
            loop51:
            do {
                int alt51=2;
                int LA51_0 = input.LA(1);

                if ( ((LA51_0>=29 && LA51_0<=31)||LA51_0==44||LA51_0==47||(LA51_0>=57 && LA51_0<=59)||(LA51_0>=62 && LA51_0<=63)||(LA51_0>=67 && LA51_0<=68)) ) {
                    alt51=1;
                }


                switch (alt51) {
            	case 1 :
            	    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3930:2: rule__Module__Alternatives_3
            	    {
            	    pushFollow(FollowSets000.FOLLOW_rule__Module__Alternatives_3_in_rule__Module__Group__3__Impl8488);
            	    rule__Module__Alternatives_3();
            	    _fsp--;
            	    if (failed) return ;

            	    }
            	    break;

            	default :
            	    break loop51;
                }
            } while (true);

            if ( backtracking==0 ) {
               after(grammarAccess.getModuleAccess().getAlternatives_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Module__Group__3__Impl


    // $ANTLR start rule__Module__Group__4
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3940:1: rule__Module__Group__4 : rule__Module__Group__4__Impl ;
    public final void rule__Module__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3944:1: ( rule__Module__Group__4__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3945:2: rule__Module__Group__4__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Module__Group__4__Impl_in_rule__Module__Group__48519);
            rule__Module__Group__4__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Module__Group__4


    // $ANTLR start rule__Module__Group__4__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3951:1: rule__Module__Group__4__Impl : ( '}' ) ;
    public final void rule__Module__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3955:1: ( ( '}' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3956:1: ( '}' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3956:1: ( '}' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3957:1: '}'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getModuleAccess().getRightCurlyBracketKeyword_4()); 
            }
            match(input,46,FollowSets000.FOLLOW_46_in_rule__Module__Group__4__Impl8547); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getModuleAccess().getRightCurlyBracketKeyword_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Module__Group__4__Impl


    // $ANTLR start rule__Interface_decl__Group__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3980:1: rule__Interface_decl__Group__0 : rule__Interface_decl__Group__0__Impl rule__Interface_decl__Group__1 ;
    public final void rule__Interface_decl__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3984:1: ( rule__Interface_decl__Group__0__Impl rule__Interface_decl__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3985:2: rule__Interface_decl__Group__0__Impl rule__Interface_decl__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Group__0__Impl_in_rule__Interface_decl__Group__08588);
            rule__Interface_decl__Group__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Group__1_in_rule__Interface_decl__Group__08591);
            rule__Interface_decl__Group__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Interface_decl__Group__0


    // $ANTLR start rule__Interface_decl__Group__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3992:1: rule__Interface_decl__Group__0__Impl : ( ( rule__Interface_decl__Alternatives_0 )? ) ;
    public final void rule__Interface_decl__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3996:1: ( ( ( rule__Interface_decl__Alternatives_0 )? ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3997:1: ( ( rule__Interface_decl__Alternatives_0 )? )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3997:1: ( ( rule__Interface_decl__Alternatives_0 )? )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3998:1: ( rule__Interface_decl__Alternatives_0 )?
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getInterface_declAccess().getAlternatives_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3999:1: ( rule__Interface_decl__Alternatives_0 )?
            int alt52=2;
            int LA52_0 = input.LA(1);

            if ( ((LA52_0>=30 && LA52_0<=31)) ) {
                alt52=1;
            }
            switch (alt52) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:3999:2: rule__Interface_decl__Alternatives_0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Alternatives_0_in_rule__Interface_decl__Group__0__Impl8618);
                    rule__Interface_decl__Alternatives_0();
                    _fsp--;
                    if (failed) return ;

                    }
                    break;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getInterface_declAccess().getAlternatives_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Interface_decl__Group__0__Impl


    // $ANTLR start rule__Interface_decl__Group__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4009:1: rule__Interface_decl__Group__1 : rule__Interface_decl__Group__1__Impl rule__Interface_decl__Group__2 ;
    public final void rule__Interface_decl__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4013:1: ( rule__Interface_decl__Group__1__Impl rule__Interface_decl__Group__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4014:2: rule__Interface_decl__Group__1__Impl rule__Interface_decl__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Group__1__Impl_in_rule__Interface_decl__Group__18649);
            rule__Interface_decl__Group__1__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Group__2_in_rule__Interface_decl__Group__18652);
            rule__Interface_decl__Group__2();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Interface_decl__Group__1


    // $ANTLR start rule__Interface_decl__Group__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4021:1: rule__Interface_decl__Group__1__Impl : ( 'interface' ) ;
    public final void rule__Interface_decl__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4025:1: ( ( 'interface' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4026:1: ( 'interface' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4026:1: ( 'interface' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4027:1: 'interface'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getInterface_declAccess().getInterfaceKeyword_1()); 
            }
            match(input,47,FollowSets000.FOLLOW_47_in_rule__Interface_decl__Group__1__Impl8680); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getInterface_declAccess().getInterfaceKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Interface_decl__Group__1__Impl


    // $ANTLR start rule__Interface_decl__Group__2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4040:1: rule__Interface_decl__Group__2 : rule__Interface_decl__Group__2__Impl rule__Interface_decl__Group__3 ;
    public final void rule__Interface_decl__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4044:1: ( rule__Interface_decl__Group__2__Impl rule__Interface_decl__Group__3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4045:2: rule__Interface_decl__Group__2__Impl rule__Interface_decl__Group__3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Group__2__Impl_in_rule__Interface_decl__Group__28711);
            rule__Interface_decl__Group__2__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Group__3_in_rule__Interface_decl__Group__28714);
            rule__Interface_decl__Group__3();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Interface_decl__Group__2


    // $ANTLR start rule__Interface_decl__Group__2__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4052:1: rule__Interface_decl__Group__2__Impl : ( ( rule__Interface_decl__IdentifierAssignment_2 ) ) ;
    public final void rule__Interface_decl__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4056:1: ( ( ( rule__Interface_decl__IdentifierAssignment_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4057:1: ( ( rule__Interface_decl__IdentifierAssignment_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4057:1: ( ( rule__Interface_decl__IdentifierAssignment_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4058:1: ( rule__Interface_decl__IdentifierAssignment_2 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getInterface_declAccess().getIdentifierAssignment_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4059:1: ( rule__Interface_decl__IdentifierAssignment_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4059:2: rule__Interface_decl__IdentifierAssignment_2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__IdentifierAssignment_2_in_rule__Interface_decl__Group__2__Impl8741);
            rule__Interface_decl__IdentifierAssignment_2();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getInterface_declAccess().getIdentifierAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Interface_decl__Group__2__Impl


    // $ANTLR start rule__Interface_decl__Group__3
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4069:1: rule__Interface_decl__Group__3 : rule__Interface_decl__Group__3__Impl rule__Interface_decl__Group__4 ;
    public final void rule__Interface_decl__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4073:1: ( rule__Interface_decl__Group__3__Impl rule__Interface_decl__Group__4 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4074:2: rule__Interface_decl__Group__3__Impl rule__Interface_decl__Group__4
            {
            pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Group__3__Impl_in_rule__Interface_decl__Group__38771);
            rule__Interface_decl__Group__3__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Group__4_in_rule__Interface_decl__Group__38774);
            rule__Interface_decl__Group__4();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Interface_decl__Group__3


    // $ANTLR start rule__Interface_decl__Group__3__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4081:1: rule__Interface_decl__Group__3__Impl : ( ( rule__Interface_decl__Group_3__0 )? ) ;
    public final void rule__Interface_decl__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4085:1: ( ( ( rule__Interface_decl__Group_3__0 )? ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4086:1: ( ( rule__Interface_decl__Group_3__0 )? )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4086:1: ( ( rule__Interface_decl__Group_3__0 )? )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4087:1: ( rule__Interface_decl__Group_3__0 )?
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getInterface_declAccess().getGroup_3()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4088:1: ( rule__Interface_decl__Group_3__0 )?
            int alt53=2;
            int LA53_0 = input.LA(1);

            if ( (LA53_0==48) ) {
                alt53=1;
            }
            switch (alt53) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4088:2: rule__Interface_decl__Group_3__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Group_3__0_in_rule__Interface_decl__Group__3__Impl8801);
                    rule__Interface_decl__Group_3__0();
                    _fsp--;
                    if (failed) return ;

                    }
                    break;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getInterface_declAccess().getGroup_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Interface_decl__Group__3__Impl


    // $ANTLR start rule__Interface_decl__Group__4
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4098:1: rule__Interface_decl__Group__4 : rule__Interface_decl__Group__4__Impl rule__Interface_decl__Group__5 ;
    public final void rule__Interface_decl__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4102:1: ( rule__Interface_decl__Group__4__Impl rule__Interface_decl__Group__5 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4103:2: rule__Interface_decl__Group__4__Impl rule__Interface_decl__Group__5
            {
            pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Group__4__Impl_in_rule__Interface_decl__Group__48832);
            rule__Interface_decl__Group__4__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Group__5_in_rule__Interface_decl__Group__48835);
            rule__Interface_decl__Group__5();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Interface_decl__Group__4


    // $ANTLR start rule__Interface_decl__Group__4__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4110:1: rule__Interface_decl__Group__4__Impl : ( '{' ) ;
    public final void rule__Interface_decl__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4114:1: ( ( '{' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4115:1: ( '{' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4115:1: ( '{' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4116:1: '{'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getInterface_declAccess().getLeftCurlyBracketKeyword_4()); 
            }
            match(input,45,FollowSets000.FOLLOW_45_in_rule__Interface_decl__Group__4__Impl8863); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getInterface_declAccess().getLeftCurlyBracketKeyword_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Interface_decl__Group__4__Impl


    // $ANTLR start rule__Interface_decl__Group__5
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4129:1: rule__Interface_decl__Group__5 : rule__Interface_decl__Group__5__Impl rule__Interface_decl__Group__6 ;
    public final void rule__Interface_decl__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4133:1: ( rule__Interface_decl__Group__5__Impl rule__Interface_decl__Group__6 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4134:2: rule__Interface_decl__Group__5__Impl rule__Interface_decl__Group__6
            {
            pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Group__5__Impl_in_rule__Interface_decl__Group__58894);
            rule__Interface_decl__Group__5__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Group__6_in_rule__Interface_decl__Group__58897);
            rule__Interface_decl__Group__6();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Interface_decl__Group__5


    // $ANTLR start rule__Interface_decl__Group__5__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4141:1: rule__Interface_decl__Group__5__Impl : ( ( rule__Interface_decl__Alternatives_5 )* ) ;
    public final void rule__Interface_decl__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4145:1: ( ( ( rule__Interface_decl__Alternatives_5 )* ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4146:1: ( ( rule__Interface_decl__Alternatives_5 )* )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4146:1: ( ( rule__Interface_decl__Alternatives_5 )* )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4147:1: ( rule__Interface_decl__Alternatives_5 )*
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getInterface_declAccess().getAlternatives_5()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4148:1: ( rule__Interface_decl__Alternatives_5 )*
            loop54:
            do {
                int alt54=2;
                int LA54_0 = input.LA(1);

                if ( (LA54_0==RULE_ID||(LA54_0>=16 && LA54_0<=29)||LA54_0==54||(LA54_0>=57 && LA54_0<=59)||(LA54_0>=62 && LA54_0<=63)||(LA54_0>=67 && LA54_0<=68)||(LA54_0>=74 && LA54_0<=76)) ) {
                    alt54=1;
                }


                switch (alt54) {
            	case 1 :
            	    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4148:2: rule__Interface_decl__Alternatives_5
            	    {
            	    pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Alternatives_5_in_rule__Interface_decl__Group__5__Impl8924);
            	    rule__Interface_decl__Alternatives_5();
            	    _fsp--;
            	    if (failed) return ;

            	    }
            	    break;

            	default :
            	    break loop54;
                }
            } while (true);

            if ( backtracking==0 ) {
               after(grammarAccess.getInterface_declAccess().getAlternatives_5()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Interface_decl__Group__5__Impl


    // $ANTLR start rule__Interface_decl__Group__6
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4158:1: rule__Interface_decl__Group__6 : rule__Interface_decl__Group__6__Impl ;
    public final void rule__Interface_decl__Group__6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4162:1: ( rule__Interface_decl__Group__6__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4163:2: rule__Interface_decl__Group__6__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Group__6__Impl_in_rule__Interface_decl__Group__68955);
            rule__Interface_decl__Group__6__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Interface_decl__Group__6


    // $ANTLR start rule__Interface_decl__Group__6__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4169:1: rule__Interface_decl__Group__6__Impl : ( '}' ) ;
    public final void rule__Interface_decl__Group__6__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4173:1: ( ( '}' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4174:1: ( '}' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4174:1: ( '}' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4175:1: '}'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getInterface_declAccess().getRightCurlyBracketKeyword_6()); 
            }
            match(input,46,FollowSets000.FOLLOW_46_in_rule__Interface_decl__Group__6__Impl8983); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getInterface_declAccess().getRightCurlyBracketKeyword_6()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Interface_decl__Group__6__Impl


    // $ANTLR start rule__Interface_decl__Group_3__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4202:1: rule__Interface_decl__Group_3__0 : rule__Interface_decl__Group_3__0__Impl rule__Interface_decl__Group_3__1 ;
    public final void rule__Interface_decl__Group_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4206:1: ( rule__Interface_decl__Group_3__0__Impl rule__Interface_decl__Group_3__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4207:2: rule__Interface_decl__Group_3__0__Impl rule__Interface_decl__Group_3__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Group_3__0__Impl_in_rule__Interface_decl__Group_3__09028);
            rule__Interface_decl__Group_3__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Group_3__1_in_rule__Interface_decl__Group_3__09031);
            rule__Interface_decl__Group_3__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Interface_decl__Group_3__0


    // $ANTLR start rule__Interface_decl__Group_3__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4214:1: rule__Interface_decl__Group_3__0__Impl : ( ':' ) ;
    public final void rule__Interface_decl__Group_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4218:1: ( ( ':' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4219:1: ( ':' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4219:1: ( ':' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4220:1: ':'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getInterface_declAccess().getColonKeyword_3_0()); 
            }
            match(input,48,FollowSets000.FOLLOW_48_in_rule__Interface_decl__Group_3__0__Impl9059); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getInterface_declAccess().getColonKeyword_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Interface_decl__Group_3__0__Impl


    // $ANTLR start rule__Interface_decl__Group_3__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4233:1: rule__Interface_decl__Group_3__1 : rule__Interface_decl__Group_3__1__Impl rule__Interface_decl__Group_3__2 ;
    public final void rule__Interface_decl__Group_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4237:1: ( rule__Interface_decl__Group_3__1__Impl rule__Interface_decl__Group_3__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4238:2: rule__Interface_decl__Group_3__1__Impl rule__Interface_decl__Group_3__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Group_3__1__Impl_in_rule__Interface_decl__Group_3__19090);
            rule__Interface_decl__Group_3__1__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Group_3__2_in_rule__Interface_decl__Group_3__19093);
            rule__Interface_decl__Group_3__2();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Interface_decl__Group_3__1


    // $ANTLR start rule__Interface_decl__Group_3__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4245:1: rule__Interface_decl__Group_3__1__Impl : ( ( rule__Interface_decl__DerivesFromAssignment_3_1 ) ) ;
    public final void rule__Interface_decl__Group_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4249:1: ( ( ( rule__Interface_decl__DerivesFromAssignment_3_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4250:1: ( ( rule__Interface_decl__DerivesFromAssignment_3_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4250:1: ( ( rule__Interface_decl__DerivesFromAssignment_3_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4251:1: ( rule__Interface_decl__DerivesFromAssignment_3_1 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getInterface_declAccess().getDerivesFromAssignment_3_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4252:1: ( rule__Interface_decl__DerivesFromAssignment_3_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4252:2: rule__Interface_decl__DerivesFromAssignment_3_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__DerivesFromAssignment_3_1_in_rule__Interface_decl__Group_3__1__Impl9120);
            rule__Interface_decl__DerivesFromAssignment_3_1();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getInterface_declAccess().getDerivesFromAssignment_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Interface_decl__Group_3__1__Impl


    // $ANTLR start rule__Interface_decl__Group_3__2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4262:1: rule__Interface_decl__Group_3__2 : rule__Interface_decl__Group_3__2__Impl ;
    public final void rule__Interface_decl__Group_3__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4266:1: ( rule__Interface_decl__Group_3__2__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4267:2: rule__Interface_decl__Group_3__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Group_3__2__Impl_in_rule__Interface_decl__Group_3__29150);
            rule__Interface_decl__Group_3__2__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Interface_decl__Group_3__2


    // $ANTLR start rule__Interface_decl__Group_3__2__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4273:1: rule__Interface_decl__Group_3__2__Impl : ( ( rule__Interface_decl__Group_3_2__0 )* ) ;
    public final void rule__Interface_decl__Group_3__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4277:1: ( ( ( rule__Interface_decl__Group_3_2__0 )* ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4278:1: ( ( rule__Interface_decl__Group_3_2__0 )* )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4278:1: ( ( rule__Interface_decl__Group_3_2__0 )* )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4279:1: ( rule__Interface_decl__Group_3_2__0 )*
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getInterface_declAccess().getGroup_3_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4280:1: ( rule__Interface_decl__Group_3_2__0 )*
            loop55:
            do {
                int alt55=2;
                int LA55_0 = input.LA(1);

                if ( (LA55_0==49) ) {
                    alt55=1;
                }


                switch (alt55) {
            	case 1 :
            	    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4280:2: rule__Interface_decl__Group_3_2__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Group_3_2__0_in_rule__Interface_decl__Group_3__2__Impl9177);
            	    rule__Interface_decl__Group_3_2__0();
            	    _fsp--;
            	    if (failed) return ;

            	    }
            	    break;

            	default :
            	    break loop55;
                }
            } while (true);

            if ( backtracking==0 ) {
               after(grammarAccess.getInterface_declAccess().getGroup_3_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Interface_decl__Group_3__2__Impl


    // $ANTLR start rule__Interface_decl__Group_3_2__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4296:1: rule__Interface_decl__Group_3_2__0 : rule__Interface_decl__Group_3_2__0__Impl rule__Interface_decl__Group_3_2__1 ;
    public final void rule__Interface_decl__Group_3_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4300:1: ( rule__Interface_decl__Group_3_2__0__Impl rule__Interface_decl__Group_3_2__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4301:2: rule__Interface_decl__Group_3_2__0__Impl rule__Interface_decl__Group_3_2__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Group_3_2__0__Impl_in_rule__Interface_decl__Group_3_2__09214);
            rule__Interface_decl__Group_3_2__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Group_3_2__1_in_rule__Interface_decl__Group_3_2__09217);
            rule__Interface_decl__Group_3_2__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Interface_decl__Group_3_2__0


    // $ANTLR start rule__Interface_decl__Group_3_2__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4308:1: rule__Interface_decl__Group_3_2__0__Impl : ( ',' ) ;
    public final void rule__Interface_decl__Group_3_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4312:1: ( ( ',' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4313:1: ( ',' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4313:1: ( ',' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4314:1: ','
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getInterface_declAccess().getCommaKeyword_3_2_0()); 
            }
            match(input,49,FollowSets000.FOLLOW_49_in_rule__Interface_decl__Group_3_2__0__Impl9245); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getInterface_declAccess().getCommaKeyword_3_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Interface_decl__Group_3_2__0__Impl


    // $ANTLR start rule__Interface_decl__Group_3_2__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4327:1: rule__Interface_decl__Group_3_2__1 : rule__Interface_decl__Group_3_2__1__Impl ;
    public final void rule__Interface_decl__Group_3_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4331:1: ( rule__Interface_decl__Group_3_2__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4332:2: rule__Interface_decl__Group_3_2__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__Group_3_2__1__Impl_in_rule__Interface_decl__Group_3_2__19276);
            rule__Interface_decl__Group_3_2__1__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Interface_decl__Group_3_2__1


    // $ANTLR start rule__Interface_decl__Group_3_2__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4338:1: rule__Interface_decl__Group_3_2__1__Impl : ( ( rule__Interface_decl__DerivesFromAssignment_3_2_1 ) ) ;
    public final void rule__Interface_decl__Group_3_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4342:1: ( ( ( rule__Interface_decl__DerivesFromAssignment_3_2_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4343:1: ( ( rule__Interface_decl__DerivesFromAssignment_3_2_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4343:1: ( ( rule__Interface_decl__DerivesFromAssignment_3_2_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4344:1: ( rule__Interface_decl__DerivesFromAssignment_3_2_1 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getInterface_declAccess().getDerivesFromAssignment_3_2_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4345:1: ( rule__Interface_decl__DerivesFromAssignment_3_2_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4345:2: rule__Interface_decl__DerivesFromAssignment_3_2_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Interface_decl__DerivesFromAssignment_3_2_1_in_rule__Interface_decl__Group_3_2__1__Impl9303);
            rule__Interface_decl__DerivesFromAssignment_3_2_1();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getInterface_declAccess().getDerivesFromAssignment_3_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Interface_decl__Group_3_2__1__Impl


    // $ANTLR start rule__Interface_fwd__Group__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4359:1: rule__Interface_fwd__Group__0 : rule__Interface_fwd__Group__0__Impl rule__Interface_fwd__Group__1 ;
    public final void rule__Interface_fwd__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4363:1: ( rule__Interface_fwd__Group__0__Impl rule__Interface_fwd__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4364:2: rule__Interface_fwd__Group__0__Impl rule__Interface_fwd__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Interface_fwd__Group__0__Impl_in_rule__Interface_fwd__Group__09337);
            rule__Interface_fwd__Group__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Interface_fwd__Group__1_in_rule__Interface_fwd__Group__09340);
            rule__Interface_fwd__Group__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Interface_fwd__Group__0


    // $ANTLR start rule__Interface_fwd__Group__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4371:1: rule__Interface_fwd__Group__0__Impl : ( ( rule__Interface_fwd__Alternatives_0 )? ) ;
    public final void rule__Interface_fwd__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4375:1: ( ( ( rule__Interface_fwd__Alternatives_0 )? ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4376:1: ( ( rule__Interface_fwd__Alternatives_0 )? )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4376:1: ( ( rule__Interface_fwd__Alternatives_0 )? )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4377:1: ( rule__Interface_fwd__Alternatives_0 )?
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getInterface_fwdAccess().getAlternatives_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4378:1: ( rule__Interface_fwd__Alternatives_0 )?
            int alt56=2;
            int LA56_0 = input.LA(1);

            if ( ((LA56_0>=30 && LA56_0<=31)) ) {
                alt56=1;
            }
            switch (alt56) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4378:2: rule__Interface_fwd__Alternatives_0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Interface_fwd__Alternatives_0_in_rule__Interface_fwd__Group__0__Impl9367);
                    rule__Interface_fwd__Alternatives_0();
                    _fsp--;
                    if (failed) return ;

                    }
                    break;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getInterface_fwdAccess().getAlternatives_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Interface_fwd__Group__0__Impl


    // $ANTLR start rule__Interface_fwd__Group__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4388:1: rule__Interface_fwd__Group__1 : rule__Interface_fwd__Group__1__Impl rule__Interface_fwd__Group__2 ;
    public final void rule__Interface_fwd__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4392:1: ( rule__Interface_fwd__Group__1__Impl rule__Interface_fwd__Group__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4393:2: rule__Interface_fwd__Group__1__Impl rule__Interface_fwd__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Interface_fwd__Group__1__Impl_in_rule__Interface_fwd__Group__19398);
            rule__Interface_fwd__Group__1__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Interface_fwd__Group__2_in_rule__Interface_fwd__Group__19401);
            rule__Interface_fwd__Group__2();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Interface_fwd__Group__1


    // $ANTLR start rule__Interface_fwd__Group__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4400:1: rule__Interface_fwd__Group__1__Impl : ( 'interface' ) ;
    public final void rule__Interface_fwd__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4404:1: ( ( 'interface' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4405:1: ( 'interface' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4405:1: ( 'interface' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4406:1: 'interface'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getInterface_fwdAccess().getInterfaceKeyword_1()); 
            }
            match(input,47,FollowSets000.FOLLOW_47_in_rule__Interface_fwd__Group__1__Impl9429); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getInterface_fwdAccess().getInterfaceKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Interface_fwd__Group__1__Impl


    // $ANTLR start rule__Interface_fwd__Group__2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4419:1: rule__Interface_fwd__Group__2 : rule__Interface_fwd__Group__2__Impl ;
    public final void rule__Interface_fwd__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4423:1: ( rule__Interface_fwd__Group__2__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4424:2: rule__Interface_fwd__Group__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Interface_fwd__Group__2__Impl_in_rule__Interface_fwd__Group__29460);
            rule__Interface_fwd__Group__2__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Interface_fwd__Group__2


    // $ANTLR start rule__Interface_fwd__Group__2__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4430:1: rule__Interface_fwd__Group__2__Impl : ( ( rule__Interface_fwd__IdentifierAssignment_2 ) ) ;
    public final void rule__Interface_fwd__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4434:1: ( ( ( rule__Interface_fwd__IdentifierAssignment_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4435:1: ( ( rule__Interface_fwd__IdentifierAssignment_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4435:1: ( ( rule__Interface_fwd__IdentifierAssignment_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4436:1: ( rule__Interface_fwd__IdentifierAssignment_2 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getInterface_fwdAccess().getIdentifierAssignment_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4437:1: ( rule__Interface_fwd__IdentifierAssignment_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4437:2: rule__Interface_fwd__IdentifierAssignment_2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Interface_fwd__IdentifierAssignment_2_in_rule__Interface_fwd__Group__2__Impl9487);
            rule__Interface_fwd__IdentifierAssignment_2();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getInterface_fwdAccess().getIdentifierAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Interface_fwd__Group__2__Impl


    // $ANTLR start rule__Export__Group_0__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4453:1: rule__Export__Group_0__0 : rule__Export__Group_0__0__Impl rule__Export__Group_0__1 ;
    public final void rule__Export__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4457:1: ( rule__Export__Group_0__0__Impl rule__Export__Group_0__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4458:2: rule__Export__Group_0__0__Impl rule__Export__Group_0__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Export__Group_0__0__Impl_in_rule__Export__Group_0__09523);
            rule__Export__Group_0__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Export__Group_0__1_in_rule__Export__Group_0__09526);
            rule__Export__Group_0__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Export__Group_0__0


    // $ANTLR start rule__Export__Group_0__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4465:1: rule__Export__Group_0__0__Impl : ( ruletype_decl ) ;
    public final void rule__Export__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4469:1: ( ( ruletype_decl ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4470:1: ( ruletype_decl )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4470:1: ( ruletype_decl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4471:1: ruletype_decl
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getExportAccess().getType_declParserRuleCall_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruletype_decl_in_rule__Export__Group_0__0__Impl9553);
            ruletype_decl();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getExportAccess().getType_declParserRuleCall_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Export__Group_0__0__Impl


    // $ANTLR start rule__Export__Group_0__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4482:1: rule__Export__Group_0__1 : rule__Export__Group_0__1__Impl ;
    public final void rule__Export__Group_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4486:1: ( rule__Export__Group_0__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4487:2: rule__Export__Group_0__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Export__Group_0__1__Impl_in_rule__Export__Group_0__19582);
            rule__Export__Group_0__1__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Export__Group_0__1


    // $ANTLR start rule__Export__Group_0__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4493:1: rule__Export__Group_0__1__Impl : ( ';' ) ;
    public final void rule__Export__Group_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4497:1: ( ( ';' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4498:1: ( ';' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4498:1: ( ';' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4499:1: ';'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getExportAccess().getSemicolonKeyword_0_1()); 
            }
            match(input,29,FollowSets000.FOLLOW_29_in_rule__Export__Group_0__1__Impl9610); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getExportAccess().getSemicolonKeyword_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Export__Group_0__1__Impl


    // $ANTLR start rule__Export__Group_1__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4516:1: rule__Export__Group_1__0 : rule__Export__Group_1__0__Impl rule__Export__Group_1__1 ;
    public final void rule__Export__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4520:1: ( rule__Export__Group_1__0__Impl rule__Export__Group_1__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4521:2: rule__Export__Group_1__0__Impl rule__Export__Group_1__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Export__Group_1__0__Impl_in_rule__Export__Group_1__09645);
            rule__Export__Group_1__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Export__Group_1__1_in_rule__Export__Group_1__09648);
            rule__Export__Group_1__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Export__Group_1__0


    // $ANTLR start rule__Export__Group_1__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4528:1: rule__Export__Group_1__0__Impl : ( ruleconst_decl ) ;
    public final void rule__Export__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4532:1: ( ( ruleconst_decl ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4533:1: ( ruleconst_decl )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4533:1: ( ruleconst_decl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4534:1: ruleconst_decl
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getExportAccess().getConst_declParserRuleCall_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleconst_decl_in_rule__Export__Group_1__0__Impl9675);
            ruleconst_decl();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getExportAccess().getConst_declParserRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Export__Group_1__0__Impl


    // $ANTLR start rule__Export__Group_1__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4545:1: rule__Export__Group_1__1 : rule__Export__Group_1__1__Impl ;
    public final void rule__Export__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4549:1: ( rule__Export__Group_1__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4550:2: rule__Export__Group_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Export__Group_1__1__Impl_in_rule__Export__Group_1__19704);
            rule__Export__Group_1__1__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Export__Group_1__1


    // $ANTLR start rule__Export__Group_1__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4556:1: rule__Export__Group_1__1__Impl : ( ';' ) ;
    public final void rule__Export__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4560:1: ( ( ';' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4561:1: ( ';' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4561:1: ( ';' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4562:1: ';'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getExportAccess().getSemicolonKeyword_1_1()); 
            }
            match(input,29,FollowSets000.FOLLOW_29_in_rule__Export__Group_1__1__Impl9732); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getExportAccess().getSemicolonKeyword_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Export__Group_1__1__Impl


    // $ANTLR start rule__Export__Group_2__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4579:1: rule__Export__Group_2__0 : rule__Export__Group_2__0__Impl rule__Export__Group_2__1 ;
    public final void rule__Export__Group_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4583:1: ( rule__Export__Group_2__0__Impl rule__Export__Group_2__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4584:2: rule__Export__Group_2__0__Impl rule__Export__Group_2__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Export__Group_2__0__Impl_in_rule__Export__Group_2__09767);
            rule__Export__Group_2__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Export__Group_2__1_in_rule__Export__Group_2__09770);
            rule__Export__Group_2__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Export__Group_2__0


    // $ANTLR start rule__Export__Group_2__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4591:1: rule__Export__Group_2__0__Impl : ( ruleexcept_decl ) ;
    public final void rule__Export__Group_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4595:1: ( ( ruleexcept_decl ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4596:1: ( ruleexcept_decl )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4596:1: ( ruleexcept_decl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4597:1: ruleexcept_decl
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getExportAccess().getExcept_declParserRuleCall_2_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleexcept_decl_in_rule__Export__Group_2__0__Impl9797);
            ruleexcept_decl();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getExportAccess().getExcept_declParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Export__Group_2__0__Impl


    // $ANTLR start rule__Export__Group_2__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4608:1: rule__Export__Group_2__1 : rule__Export__Group_2__1__Impl ;
    public final void rule__Export__Group_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4612:1: ( rule__Export__Group_2__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4613:2: rule__Export__Group_2__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Export__Group_2__1__Impl_in_rule__Export__Group_2__19826);
            rule__Export__Group_2__1__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Export__Group_2__1


    // $ANTLR start rule__Export__Group_2__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4619:1: rule__Export__Group_2__1__Impl : ( ';' ) ;
    public final void rule__Export__Group_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4623:1: ( ( ';' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4624:1: ( ';' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4624:1: ( ';' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4625:1: ';'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getExportAccess().getSemicolonKeyword_2_1()); 
            }
            match(input,29,FollowSets000.FOLLOW_29_in_rule__Export__Group_2__1__Impl9854); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getExportAccess().getSemicolonKeyword_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Export__Group_2__1__Impl


    // $ANTLR start rule__Export__Group_3__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4642:1: rule__Export__Group_3__0 : rule__Export__Group_3__0__Impl rule__Export__Group_3__1 ;
    public final void rule__Export__Group_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4646:1: ( rule__Export__Group_3__0__Impl rule__Export__Group_3__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4647:2: rule__Export__Group_3__0__Impl rule__Export__Group_3__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Export__Group_3__0__Impl_in_rule__Export__Group_3__09889);
            rule__Export__Group_3__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Export__Group_3__1_in_rule__Export__Group_3__09892);
            rule__Export__Group_3__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Export__Group_3__0


    // $ANTLR start rule__Export__Group_3__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4654:1: rule__Export__Group_3__0__Impl : ( ruleattr_decl ) ;
    public final void rule__Export__Group_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4658:1: ( ( ruleattr_decl ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4659:1: ( ruleattr_decl )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4659:1: ( ruleattr_decl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4660:1: ruleattr_decl
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getExportAccess().getAttr_declParserRuleCall_3_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleattr_decl_in_rule__Export__Group_3__0__Impl9919);
            ruleattr_decl();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getExportAccess().getAttr_declParserRuleCall_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Export__Group_3__0__Impl


    // $ANTLR start rule__Export__Group_3__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4671:1: rule__Export__Group_3__1 : rule__Export__Group_3__1__Impl ;
    public final void rule__Export__Group_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4675:1: ( rule__Export__Group_3__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4676:2: rule__Export__Group_3__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Export__Group_3__1__Impl_in_rule__Export__Group_3__19948);
            rule__Export__Group_3__1__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Export__Group_3__1


    // $ANTLR start rule__Export__Group_3__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4682:1: rule__Export__Group_3__1__Impl : ( ';' ) ;
    public final void rule__Export__Group_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4686:1: ( ( ';' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4687:1: ( ';' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4687:1: ( ';' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4688:1: ';'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getExportAccess().getSemicolonKeyword_3_1()); 
            }
            match(input,29,FollowSets000.FOLLOW_29_in_rule__Export__Group_3__1__Impl9976); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getExportAccess().getSemicolonKeyword_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Export__Group_3__1__Impl


    // $ANTLR start rule__Export__Group_4__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4705:1: rule__Export__Group_4__0 : rule__Export__Group_4__0__Impl rule__Export__Group_4__1 ;
    public final void rule__Export__Group_4__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4709:1: ( rule__Export__Group_4__0__Impl rule__Export__Group_4__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4710:2: rule__Export__Group_4__0__Impl rule__Export__Group_4__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Export__Group_4__0__Impl_in_rule__Export__Group_4__010011);
            rule__Export__Group_4__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Export__Group_4__1_in_rule__Export__Group_4__010014);
            rule__Export__Group_4__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Export__Group_4__0


    // $ANTLR start rule__Export__Group_4__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4717:1: rule__Export__Group_4__0__Impl : ( ruleop_decl ) ;
    public final void rule__Export__Group_4__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4721:1: ( ( ruleop_decl ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4722:1: ( ruleop_decl )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4722:1: ( ruleop_decl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4723:1: ruleop_decl
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getExportAccess().getOp_declParserRuleCall_4_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleop_decl_in_rule__Export__Group_4__0__Impl10041);
            ruleop_decl();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getExportAccess().getOp_declParserRuleCall_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Export__Group_4__0__Impl


    // $ANTLR start rule__Export__Group_4__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4734:1: rule__Export__Group_4__1 : rule__Export__Group_4__1__Impl ;
    public final void rule__Export__Group_4__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4738:1: ( rule__Export__Group_4__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4739:2: rule__Export__Group_4__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Export__Group_4__1__Impl_in_rule__Export__Group_4__110070);
            rule__Export__Group_4__1__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Export__Group_4__1


    // $ANTLR start rule__Export__Group_4__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4745:1: rule__Export__Group_4__1__Impl : ( ';' ) ;
    public final void rule__Export__Group_4__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4749:1: ( ( ';' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4750:1: ( ';' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4750:1: ( ';' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4751:1: ';'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getExportAccess().getSemicolonKeyword_4_1()); 
            }
            match(input,29,FollowSets000.FOLLOW_29_in_rule__Export__Group_4__1__Impl10098); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getExportAccess().getSemicolonKeyword_4_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Export__Group_4__1__Impl


    // $ANTLR start rule__Op_decl__Group__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4768:1: rule__Op_decl__Group__0 : rule__Op_decl__Group__0__Impl rule__Op_decl__Group__1 ;
    public final void rule__Op_decl__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4772:1: ( rule__Op_decl__Group__0__Impl rule__Op_decl__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4773:2: rule__Op_decl__Group__0__Impl rule__Op_decl__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group__0__Impl_in_rule__Op_decl__Group__010133);
            rule__Op_decl__Group__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group__1_in_rule__Op_decl__Group__010136);
            rule__Op_decl__Group__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group__0


    // $ANTLR start rule__Op_decl__Group__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4780:1: rule__Op_decl__Group__0__Impl : ( ( rule__Op_decl__IsOnewayAssignment_0 )? ) ;
    public final void rule__Op_decl__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4784:1: ( ( ( rule__Op_decl__IsOnewayAssignment_0 )? ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4785:1: ( ( rule__Op_decl__IsOnewayAssignment_0 )? )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4785:1: ( ( rule__Op_decl__IsOnewayAssignment_0 )? )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4786:1: ( rule__Op_decl__IsOnewayAssignment_0 )?
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getIsOnewayAssignment_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4787:1: ( rule__Op_decl__IsOnewayAssignment_0 )?
            int alt57=2;
            int LA57_0 = input.LA(1);

            if ( (LA57_0==75) ) {
                alt57=1;
            }
            switch (alt57) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4787:2: rule__Op_decl__IsOnewayAssignment_0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Op_decl__IsOnewayAssignment_0_in_rule__Op_decl__Group__0__Impl10163);
                    rule__Op_decl__IsOnewayAssignment_0();
                    _fsp--;
                    if (failed) return ;

                    }
                    break;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getIsOnewayAssignment_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group__0__Impl


    // $ANTLR start rule__Op_decl__Group__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4797:1: rule__Op_decl__Group__1 : rule__Op_decl__Group__1__Impl rule__Op_decl__Group__2 ;
    public final void rule__Op_decl__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4801:1: ( rule__Op_decl__Group__1__Impl rule__Op_decl__Group__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4802:2: rule__Op_decl__Group__1__Impl rule__Op_decl__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group__1__Impl_in_rule__Op_decl__Group__110194);
            rule__Op_decl__Group__1__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group__2_in_rule__Op_decl__Group__110197);
            rule__Op_decl__Group__2();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group__1


    // $ANTLR start rule__Op_decl__Group__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4809:1: rule__Op_decl__Group__1__Impl : ( ( rule__Op_decl__Alternatives_1 ) ) ;
    public final void rule__Op_decl__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4813:1: ( ( ( rule__Op_decl__Alternatives_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4814:1: ( ( rule__Op_decl__Alternatives_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4814:1: ( ( rule__Op_decl__Alternatives_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4815:1: ( rule__Op_decl__Alternatives_1 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getAlternatives_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4816:1: ( rule__Op_decl__Alternatives_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4816:2: rule__Op_decl__Alternatives_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Alternatives_1_in_rule__Op_decl__Group__1__Impl10224);
            rule__Op_decl__Alternatives_1();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getAlternatives_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group__1__Impl


    // $ANTLR start rule__Op_decl__Group__2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4826:1: rule__Op_decl__Group__2 : rule__Op_decl__Group__2__Impl rule__Op_decl__Group__3 ;
    public final void rule__Op_decl__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4830:1: ( rule__Op_decl__Group__2__Impl rule__Op_decl__Group__3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4831:2: rule__Op_decl__Group__2__Impl rule__Op_decl__Group__3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group__2__Impl_in_rule__Op_decl__Group__210254);
            rule__Op_decl__Group__2__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group__3_in_rule__Op_decl__Group__210257);
            rule__Op_decl__Group__3();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group__2


    // $ANTLR start rule__Op_decl__Group__2__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4838:1: rule__Op_decl__Group__2__Impl : ( ( rule__Op_decl__IdentifierAssignment_2 ) ) ;
    public final void rule__Op_decl__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4842:1: ( ( ( rule__Op_decl__IdentifierAssignment_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4843:1: ( ( rule__Op_decl__IdentifierAssignment_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4843:1: ( ( rule__Op_decl__IdentifierAssignment_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4844:1: ( rule__Op_decl__IdentifierAssignment_2 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getIdentifierAssignment_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4845:1: ( rule__Op_decl__IdentifierAssignment_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4845:2: rule__Op_decl__IdentifierAssignment_2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__IdentifierAssignment_2_in_rule__Op_decl__Group__2__Impl10284);
            rule__Op_decl__IdentifierAssignment_2();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getIdentifierAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group__2__Impl


    // $ANTLR start rule__Op_decl__Group__3
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4855:1: rule__Op_decl__Group__3 : rule__Op_decl__Group__3__Impl rule__Op_decl__Group__4 ;
    public final void rule__Op_decl__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4859:1: ( rule__Op_decl__Group__3__Impl rule__Op_decl__Group__4 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4860:2: rule__Op_decl__Group__3__Impl rule__Op_decl__Group__4
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group__3__Impl_in_rule__Op_decl__Group__310314);
            rule__Op_decl__Group__3__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group__4_in_rule__Op_decl__Group__310317);
            rule__Op_decl__Group__4();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group__3


    // $ANTLR start rule__Op_decl__Group__3__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4867:1: rule__Op_decl__Group__3__Impl : ( '(' ) ;
    public final void rule__Op_decl__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4871:1: ( ( '(' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4872:1: ( '(' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4872:1: ( '(' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4873:1: '('
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getLeftParenthesisKeyword_3()); 
            }
            match(input,50,FollowSets000.FOLLOW_50_in_rule__Op_decl__Group__3__Impl10345); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getLeftParenthesisKeyword_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group__3__Impl


    // $ANTLR start rule__Op_decl__Group__4
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4886:1: rule__Op_decl__Group__4 : rule__Op_decl__Group__4__Impl rule__Op_decl__Group__5 ;
    public final void rule__Op_decl__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4890:1: ( rule__Op_decl__Group__4__Impl rule__Op_decl__Group__5 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4891:2: rule__Op_decl__Group__4__Impl rule__Op_decl__Group__5
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group__4__Impl_in_rule__Op_decl__Group__410376);
            rule__Op_decl__Group__4__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group__5_in_rule__Op_decl__Group__410379);
            rule__Op_decl__Group__5();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group__4


    // $ANTLR start rule__Op_decl__Group__4__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4898:1: rule__Op_decl__Group__4__Impl : ( ( rule__Op_decl__Group_4__0 )? ) ;
    public final void rule__Op_decl__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4902:1: ( ( ( rule__Op_decl__Group_4__0 )? ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4903:1: ( ( rule__Op_decl__Group_4__0 )? )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4903:1: ( ( rule__Op_decl__Group_4__0 )? )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4904:1: ( rule__Op_decl__Group_4__0 )?
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getGroup_4()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4905:1: ( rule__Op_decl__Group_4__0 )?
            int alt58=2;
            int LA58_0 = input.LA(1);

            if ( ((LA58_0>=40 && LA58_0<=42)) ) {
                alt58=1;
            }
            switch (alt58) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4905:2: rule__Op_decl__Group_4__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_4__0_in_rule__Op_decl__Group__4__Impl10406);
                    rule__Op_decl__Group_4__0();
                    _fsp--;
                    if (failed) return ;

                    }
                    break;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getGroup_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group__4__Impl


    // $ANTLR start rule__Op_decl__Group__5
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4915:1: rule__Op_decl__Group__5 : rule__Op_decl__Group__5__Impl rule__Op_decl__Group__6 ;
    public final void rule__Op_decl__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4919:1: ( rule__Op_decl__Group__5__Impl rule__Op_decl__Group__6 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4920:2: rule__Op_decl__Group__5__Impl rule__Op_decl__Group__6
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group__5__Impl_in_rule__Op_decl__Group__510437);
            rule__Op_decl__Group__5__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group__6_in_rule__Op_decl__Group__510440);
            rule__Op_decl__Group__6();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group__5


    // $ANTLR start rule__Op_decl__Group__5__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4927:1: rule__Op_decl__Group__5__Impl : ( ')' ) ;
    public final void rule__Op_decl__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4931:1: ( ( ')' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4932:1: ( ')' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4932:1: ( ')' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4933:1: ')'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getRightParenthesisKeyword_5()); 
            }
            match(input,51,FollowSets000.FOLLOW_51_in_rule__Op_decl__Group__5__Impl10468); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getRightParenthesisKeyword_5()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group__5__Impl


    // $ANTLR start rule__Op_decl__Group__6
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4946:1: rule__Op_decl__Group__6 : rule__Op_decl__Group__6__Impl rule__Op_decl__Group__7 ;
    public final void rule__Op_decl__Group__6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4950:1: ( rule__Op_decl__Group__6__Impl rule__Op_decl__Group__7 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4951:2: rule__Op_decl__Group__6__Impl rule__Op_decl__Group__7
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group__6__Impl_in_rule__Op_decl__Group__610499);
            rule__Op_decl__Group__6__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group__7_in_rule__Op_decl__Group__610502);
            rule__Op_decl__Group__7();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group__6


    // $ANTLR start rule__Op_decl__Group__6__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4958:1: rule__Op_decl__Group__6__Impl : ( ( rule__Op_decl__Group_6__0 )? ) ;
    public final void rule__Op_decl__Group__6__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4962:1: ( ( ( rule__Op_decl__Group_6__0 )? ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4963:1: ( ( rule__Op_decl__Group_6__0 )? )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4963:1: ( ( rule__Op_decl__Group_6__0 )? )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4964:1: ( rule__Op_decl__Group_6__0 )?
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getGroup_6()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4965:1: ( rule__Op_decl__Group_6__0 )?
            int alt59=2;
            int LA59_0 = input.LA(1);

            if ( (LA59_0==52) ) {
                alt59=1;
            }
            switch (alt59) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4965:2: rule__Op_decl__Group_6__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_6__0_in_rule__Op_decl__Group__6__Impl10529);
                    rule__Op_decl__Group_6__0();
                    _fsp--;
                    if (failed) return ;

                    }
                    break;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getGroup_6()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group__6__Impl


    // $ANTLR start rule__Op_decl__Group__7
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4975:1: rule__Op_decl__Group__7 : rule__Op_decl__Group__7__Impl ;
    public final void rule__Op_decl__Group__7() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4979:1: ( rule__Op_decl__Group__7__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4980:2: rule__Op_decl__Group__7__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group__7__Impl_in_rule__Op_decl__Group__710560);
            rule__Op_decl__Group__7__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group__7


    // $ANTLR start rule__Op_decl__Group__7__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4986:1: rule__Op_decl__Group__7__Impl : ( ( rule__Op_decl__Group_7__0 )? ) ;
    public final void rule__Op_decl__Group__7__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4990:1: ( ( ( rule__Op_decl__Group_7__0 )? ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4991:1: ( ( rule__Op_decl__Group_7__0 )? )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4991:1: ( ( rule__Op_decl__Group_7__0 )? )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4992:1: ( rule__Op_decl__Group_7__0 )?
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getGroup_7()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4993:1: ( rule__Op_decl__Group_7__0 )?
            int alt60=2;
            int LA60_0 = input.LA(1);

            if ( (LA60_0==53) ) {
                alt60=1;
            }
            switch (alt60) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:4993:2: rule__Op_decl__Group_7__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_7__0_in_rule__Op_decl__Group__7__Impl10587);
                    rule__Op_decl__Group_7__0();
                    _fsp--;
                    if (failed) return ;

                    }
                    break;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getGroup_7()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group__7__Impl


    // $ANTLR start rule__Op_decl__Group_4__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5019:1: rule__Op_decl__Group_4__0 : rule__Op_decl__Group_4__0__Impl rule__Op_decl__Group_4__1 ;
    public final void rule__Op_decl__Group_4__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5023:1: ( rule__Op_decl__Group_4__0__Impl rule__Op_decl__Group_4__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5024:2: rule__Op_decl__Group_4__0__Impl rule__Op_decl__Group_4__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_4__0__Impl_in_rule__Op_decl__Group_4__010634);
            rule__Op_decl__Group_4__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_4__1_in_rule__Op_decl__Group_4__010637);
            rule__Op_decl__Group_4__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group_4__0


    // $ANTLR start rule__Op_decl__Group_4__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5031:1: rule__Op_decl__Group_4__0__Impl : ( ( rule__Op_decl__ParametersAssignment_4_0 ) ) ;
    public final void rule__Op_decl__Group_4__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5035:1: ( ( ( rule__Op_decl__ParametersAssignment_4_0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5036:1: ( ( rule__Op_decl__ParametersAssignment_4_0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5036:1: ( ( rule__Op_decl__ParametersAssignment_4_0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5037:1: ( rule__Op_decl__ParametersAssignment_4_0 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getParametersAssignment_4_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5038:1: ( rule__Op_decl__ParametersAssignment_4_0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5038:2: rule__Op_decl__ParametersAssignment_4_0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__ParametersAssignment_4_0_in_rule__Op_decl__Group_4__0__Impl10664);
            rule__Op_decl__ParametersAssignment_4_0();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getParametersAssignment_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group_4__0__Impl


    // $ANTLR start rule__Op_decl__Group_4__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5048:1: rule__Op_decl__Group_4__1 : rule__Op_decl__Group_4__1__Impl ;
    public final void rule__Op_decl__Group_4__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5052:1: ( rule__Op_decl__Group_4__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5053:2: rule__Op_decl__Group_4__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_4__1__Impl_in_rule__Op_decl__Group_4__110694);
            rule__Op_decl__Group_4__1__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group_4__1


    // $ANTLR start rule__Op_decl__Group_4__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5059:1: rule__Op_decl__Group_4__1__Impl : ( ( rule__Op_decl__Group_4_1__0 )* ) ;
    public final void rule__Op_decl__Group_4__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5063:1: ( ( ( rule__Op_decl__Group_4_1__0 )* ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5064:1: ( ( rule__Op_decl__Group_4_1__0 )* )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5064:1: ( ( rule__Op_decl__Group_4_1__0 )* )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5065:1: ( rule__Op_decl__Group_4_1__0 )*
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getGroup_4_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5066:1: ( rule__Op_decl__Group_4_1__0 )*
            loop61:
            do {
                int alt61=2;
                int LA61_0 = input.LA(1);

                if ( (LA61_0==49) ) {
                    alt61=1;
                }


                switch (alt61) {
            	case 1 :
            	    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5066:2: rule__Op_decl__Group_4_1__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_4_1__0_in_rule__Op_decl__Group_4__1__Impl10721);
            	    rule__Op_decl__Group_4_1__0();
            	    _fsp--;
            	    if (failed) return ;

            	    }
            	    break;

            	default :
            	    break loop61;
                }
            } while (true);

            if ( backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getGroup_4_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group_4__1__Impl


    // $ANTLR start rule__Op_decl__Group_4_1__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5080:1: rule__Op_decl__Group_4_1__0 : rule__Op_decl__Group_4_1__0__Impl rule__Op_decl__Group_4_1__1 ;
    public final void rule__Op_decl__Group_4_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5084:1: ( rule__Op_decl__Group_4_1__0__Impl rule__Op_decl__Group_4_1__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5085:2: rule__Op_decl__Group_4_1__0__Impl rule__Op_decl__Group_4_1__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_4_1__0__Impl_in_rule__Op_decl__Group_4_1__010756);
            rule__Op_decl__Group_4_1__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_4_1__1_in_rule__Op_decl__Group_4_1__010759);
            rule__Op_decl__Group_4_1__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group_4_1__0


    // $ANTLR start rule__Op_decl__Group_4_1__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5092:1: rule__Op_decl__Group_4_1__0__Impl : ( ',' ) ;
    public final void rule__Op_decl__Group_4_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5096:1: ( ( ',' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5097:1: ( ',' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5097:1: ( ',' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5098:1: ','
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getCommaKeyword_4_1_0()); 
            }
            match(input,49,FollowSets000.FOLLOW_49_in_rule__Op_decl__Group_4_1__0__Impl10787); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getCommaKeyword_4_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group_4_1__0__Impl


    // $ANTLR start rule__Op_decl__Group_4_1__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5111:1: rule__Op_decl__Group_4_1__1 : rule__Op_decl__Group_4_1__1__Impl ;
    public final void rule__Op_decl__Group_4_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5115:1: ( rule__Op_decl__Group_4_1__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5116:2: rule__Op_decl__Group_4_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_4_1__1__Impl_in_rule__Op_decl__Group_4_1__110818);
            rule__Op_decl__Group_4_1__1__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group_4_1__1


    // $ANTLR start rule__Op_decl__Group_4_1__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5122:1: rule__Op_decl__Group_4_1__1__Impl : ( ( rule__Op_decl__ParametersAssignment_4_1_1 ) ) ;
    public final void rule__Op_decl__Group_4_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5126:1: ( ( ( rule__Op_decl__ParametersAssignment_4_1_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5127:1: ( ( rule__Op_decl__ParametersAssignment_4_1_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5127:1: ( ( rule__Op_decl__ParametersAssignment_4_1_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5128:1: ( rule__Op_decl__ParametersAssignment_4_1_1 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getParametersAssignment_4_1_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5129:1: ( rule__Op_decl__ParametersAssignment_4_1_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5129:2: rule__Op_decl__ParametersAssignment_4_1_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__ParametersAssignment_4_1_1_in_rule__Op_decl__Group_4_1__1__Impl10845);
            rule__Op_decl__ParametersAssignment_4_1_1();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getParametersAssignment_4_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group_4_1__1__Impl


    // $ANTLR start rule__Op_decl__Group_6__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5143:1: rule__Op_decl__Group_6__0 : rule__Op_decl__Group_6__0__Impl rule__Op_decl__Group_6__1 ;
    public final void rule__Op_decl__Group_6__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5147:1: ( rule__Op_decl__Group_6__0__Impl rule__Op_decl__Group_6__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5148:2: rule__Op_decl__Group_6__0__Impl rule__Op_decl__Group_6__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_6__0__Impl_in_rule__Op_decl__Group_6__010879);
            rule__Op_decl__Group_6__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_6__1_in_rule__Op_decl__Group_6__010882);
            rule__Op_decl__Group_6__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group_6__0


    // $ANTLR start rule__Op_decl__Group_6__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5155:1: rule__Op_decl__Group_6__0__Impl : ( 'raises' ) ;
    public final void rule__Op_decl__Group_6__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5159:1: ( ( 'raises' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5160:1: ( 'raises' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5160:1: ( 'raises' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5161:1: 'raises'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getRaisesKeyword_6_0()); 
            }
            match(input,52,FollowSets000.FOLLOW_52_in_rule__Op_decl__Group_6__0__Impl10910); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getRaisesKeyword_6_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group_6__0__Impl


    // $ANTLR start rule__Op_decl__Group_6__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5174:1: rule__Op_decl__Group_6__1 : rule__Op_decl__Group_6__1__Impl rule__Op_decl__Group_6__2 ;
    public final void rule__Op_decl__Group_6__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5178:1: ( rule__Op_decl__Group_6__1__Impl rule__Op_decl__Group_6__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5179:2: rule__Op_decl__Group_6__1__Impl rule__Op_decl__Group_6__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_6__1__Impl_in_rule__Op_decl__Group_6__110941);
            rule__Op_decl__Group_6__1__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_6__2_in_rule__Op_decl__Group_6__110944);
            rule__Op_decl__Group_6__2();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group_6__1


    // $ANTLR start rule__Op_decl__Group_6__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5186:1: rule__Op_decl__Group_6__1__Impl : ( '(' ) ;
    public final void rule__Op_decl__Group_6__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5190:1: ( ( '(' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5191:1: ( '(' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5191:1: ( '(' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5192:1: '('
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getLeftParenthesisKeyword_6_1()); 
            }
            match(input,50,FollowSets000.FOLLOW_50_in_rule__Op_decl__Group_6__1__Impl10972); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getLeftParenthesisKeyword_6_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group_6__1__Impl


    // $ANTLR start rule__Op_decl__Group_6__2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5205:1: rule__Op_decl__Group_6__2 : rule__Op_decl__Group_6__2__Impl rule__Op_decl__Group_6__3 ;
    public final void rule__Op_decl__Group_6__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5209:1: ( rule__Op_decl__Group_6__2__Impl rule__Op_decl__Group_6__3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5210:2: rule__Op_decl__Group_6__2__Impl rule__Op_decl__Group_6__3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_6__2__Impl_in_rule__Op_decl__Group_6__211003);
            rule__Op_decl__Group_6__2__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_6__3_in_rule__Op_decl__Group_6__211006);
            rule__Op_decl__Group_6__3();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group_6__2


    // $ANTLR start rule__Op_decl__Group_6__2__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5217:1: rule__Op_decl__Group_6__2__Impl : ( ( rule__Op_decl__CanRaiseAssignment_6_2 ) ) ;
    public final void rule__Op_decl__Group_6__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5221:1: ( ( ( rule__Op_decl__CanRaiseAssignment_6_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5222:1: ( ( rule__Op_decl__CanRaiseAssignment_6_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5222:1: ( ( rule__Op_decl__CanRaiseAssignment_6_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5223:1: ( rule__Op_decl__CanRaiseAssignment_6_2 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getCanRaiseAssignment_6_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5224:1: ( rule__Op_decl__CanRaiseAssignment_6_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5224:2: rule__Op_decl__CanRaiseAssignment_6_2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__CanRaiseAssignment_6_2_in_rule__Op_decl__Group_6__2__Impl11033);
            rule__Op_decl__CanRaiseAssignment_6_2();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getCanRaiseAssignment_6_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group_6__2__Impl


    // $ANTLR start rule__Op_decl__Group_6__3
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5234:1: rule__Op_decl__Group_6__3 : rule__Op_decl__Group_6__3__Impl rule__Op_decl__Group_6__4 ;
    public final void rule__Op_decl__Group_6__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5238:1: ( rule__Op_decl__Group_6__3__Impl rule__Op_decl__Group_6__4 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5239:2: rule__Op_decl__Group_6__3__Impl rule__Op_decl__Group_6__4
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_6__3__Impl_in_rule__Op_decl__Group_6__311063);
            rule__Op_decl__Group_6__3__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_6__4_in_rule__Op_decl__Group_6__311066);
            rule__Op_decl__Group_6__4();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group_6__3


    // $ANTLR start rule__Op_decl__Group_6__3__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5246:1: rule__Op_decl__Group_6__3__Impl : ( ( rule__Op_decl__Group_6_3__0 )* ) ;
    public final void rule__Op_decl__Group_6__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5250:1: ( ( ( rule__Op_decl__Group_6_3__0 )* ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5251:1: ( ( rule__Op_decl__Group_6_3__0 )* )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5251:1: ( ( rule__Op_decl__Group_6_3__0 )* )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5252:1: ( rule__Op_decl__Group_6_3__0 )*
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getGroup_6_3()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5253:1: ( rule__Op_decl__Group_6_3__0 )*
            loop62:
            do {
                int alt62=2;
                int LA62_0 = input.LA(1);

                if ( (LA62_0==49) ) {
                    alt62=1;
                }


                switch (alt62) {
            	case 1 :
            	    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5253:2: rule__Op_decl__Group_6_3__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_6_3__0_in_rule__Op_decl__Group_6__3__Impl11093);
            	    rule__Op_decl__Group_6_3__0();
            	    _fsp--;
            	    if (failed) return ;

            	    }
            	    break;

            	default :
            	    break loop62;
                }
            } while (true);

            if ( backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getGroup_6_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group_6__3__Impl


    // $ANTLR start rule__Op_decl__Group_6__4
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5263:1: rule__Op_decl__Group_6__4 : rule__Op_decl__Group_6__4__Impl ;
    public final void rule__Op_decl__Group_6__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5267:1: ( rule__Op_decl__Group_6__4__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5268:2: rule__Op_decl__Group_6__4__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_6__4__Impl_in_rule__Op_decl__Group_6__411124);
            rule__Op_decl__Group_6__4__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group_6__4


    // $ANTLR start rule__Op_decl__Group_6__4__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5274:1: rule__Op_decl__Group_6__4__Impl : ( ')' ) ;
    public final void rule__Op_decl__Group_6__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5278:1: ( ( ')' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5279:1: ( ')' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5279:1: ( ')' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5280:1: ')'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getRightParenthesisKeyword_6_4()); 
            }
            match(input,51,FollowSets000.FOLLOW_51_in_rule__Op_decl__Group_6__4__Impl11152); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getRightParenthesisKeyword_6_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group_6__4__Impl


    // $ANTLR start rule__Op_decl__Group_6_3__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5303:1: rule__Op_decl__Group_6_3__0 : rule__Op_decl__Group_6_3__0__Impl rule__Op_decl__Group_6_3__1 ;
    public final void rule__Op_decl__Group_6_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5307:1: ( rule__Op_decl__Group_6_3__0__Impl rule__Op_decl__Group_6_3__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5308:2: rule__Op_decl__Group_6_3__0__Impl rule__Op_decl__Group_6_3__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_6_3__0__Impl_in_rule__Op_decl__Group_6_3__011193);
            rule__Op_decl__Group_6_3__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_6_3__1_in_rule__Op_decl__Group_6_3__011196);
            rule__Op_decl__Group_6_3__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group_6_3__0


    // $ANTLR start rule__Op_decl__Group_6_3__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5315:1: rule__Op_decl__Group_6_3__0__Impl : ( ',' ) ;
    public final void rule__Op_decl__Group_6_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5319:1: ( ( ',' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5320:1: ( ',' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5320:1: ( ',' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5321:1: ','
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getCommaKeyword_6_3_0()); 
            }
            match(input,49,FollowSets000.FOLLOW_49_in_rule__Op_decl__Group_6_3__0__Impl11224); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getCommaKeyword_6_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group_6_3__0__Impl


    // $ANTLR start rule__Op_decl__Group_6_3__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5334:1: rule__Op_decl__Group_6_3__1 : rule__Op_decl__Group_6_3__1__Impl ;
    public final void rule__Op_decl__Group_6_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5338:1: ( rule__Op_decl__Group_6_3__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5339:2: rule__Op_decl__Group_6_3__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_6_3__1__Impl_in_rule__Op_decl__Group_6_3__111255);
            rule__Op_decl__Group_6_3__1__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group_6_3__1


    // $ANTLR start rule__Op_decl__Group_6_3__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5345:1: rule__Op_decl__Group_6_3__1__Impl : ( ( rule__Op_decl__CanRaiseAssignment_6_3_1 ) ) ;
    public final void rule__Op_decl__Group_6_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5349:1: ( ( ( rule__Op_decl__CanRaiseAssignment_6_3_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5350:1: ( ( rule__Op_decl__CanRaiseAssignment_6_3_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5350:1: ( ( rule__Op_decl__CanRaiseAssignment_6_3_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5351:1: ( rule__Op_decl__CanRaiseAssignment_6_3_1 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getCanRaiseAssignment_6_3_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5352:1: ( rule__Op_decl__CanRaiseAssignment_6_3_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5352:2: rule__Op_decl__CanRaiseAssignment_6_3_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__CanRaiseAssignment_6_3_1_in_rule__Op_decl__Group_6_3__1__Impl11282);
            rule__Op_decl__CanRaiseAssignment_6_3_1();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getCanRaiseAssignment_6_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group_6_3__1__Impl


    // $ANTLR start rule__Op_decl__Group_7__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5366:1: rule__Op_decl__Group_7__0 : rule__Op_decl__Group_7__0__Impl rule__Op_decl__Group_7__1 ;
    public final void rule__Op_decl__Group_7__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5370:1: ( rule__Op_decl__Group_7__0__Impl rule__Op_decl__Group_7__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5371:2: rule__Op_decl__Group_7__0__Impl rule__Op_decl__Group_7__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_7__0__Impl_in_rule__Op_decl__Group_7__011316);
            rule__Op_decl__Group_7__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_7__1_in_rule__Op_decl__Group_7__011319);
            rule__Op_decl__Group_7__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group_7__0


    // $ANTLR start rule__Op_decl__Group_7__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5378:1: rule__Op_decl__Group_7__0__Impl : ( 'context' ) ;
    public final void rule__Op_decl__Group_7__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5382:1: ( ( 'context' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5383:1: ( 'context' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5383:1: ( 'context' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5384:1: 'context'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getContextKeyword_7_0()); 
            }
            match(input,53,FollowSets000.FOLLOW_53_in_rule__Op_decl__Group_7__0__Impl11347); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getContextKeyword_7_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group_7__0__Impl


    // $ANTLR start rule__Op_decl__Group_7__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5397:1: rule__Op_decl__Group_7__1 : rule__Op_decl__Group_7__1__Impl rule__Op_decl__Group_7__2 ;
    public final void rule__Op_decl__Group_7__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5401:1: ( rule__Op_decl__Group_7__1__Impl rule__Op_decl__Group_7__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5402:2: rule__Op_decl__Group_7__1__Impl rule__Op_decl__Group_7__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_7__1__Impl_in_rule__Op_decl__Group_7__111378);
            rule__Op_decl__Group_7__1__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_7__2_in_rule__Op_decl__Group_7__111381);
            rule__Op_decl__Group_7__2();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group_7__1


    // $ANTLR start rule__Op_decl__Group_7__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5409:1: rule__Op_decl__Group_7__1__Impl : ( '(' ) ;
    public final void rule__Op_decl__Group_7__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5413:1: ( ( '(' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5414:1: ( '(' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5414:1: ( '(' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5415:1: '('
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getLeftParenthesisKeyword_7_1()); 
            }
            match(input,50,FollowSets000.FOLLOW_50_in_rule__Op_decl__Group_7__1__Impl11409); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getLeftParenthesisKeyword_7_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group_7__1__Impl


    // $ANTLR start rule__Op_decl__Group_7__2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5428:1: rule__Op_decl__Group_7__2 : rule__Op_decl__Group_7__2__Impl rule__Op_decl__Group_7__3 ;
    public final void rule__Op_decl__Group_7__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5432:1: ( rule__Op_decl__Group_7__2__Impl rule__Op_decl__Group_7__3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5433:2: rule__Op_decl__Group_7__2__Impl rule__Op_decl__Group_7__3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_7__2__Impl_in_rule__Op_decl__Group_7__211440);
            rule__Op_decl__Group_7__2__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_7__3_in_rule__Op_decl__Group_7__211443);
            rule__Op_decl__Group_7__3();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group_7__2


    // $ANTLR start rule__Op_decl__Group_7__2__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5440:1: rule__Op_decl__Group_7__2__Impl : ( ( rule__Op_decl__ContextsAssignment_7_2 ) ) ;
    public final void rule__Op_decl__Group_7__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5444:1: ( ( ( rule__Op_decl__ContextsAssignment_7_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5445:1: ( ( rule__Op_decl__ContextsAssignment_7_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5445:1: ( ( rule__Op_decl__ContextsAssignment_7_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5446:1: ( rule__Op_decl__ContextsAssignment_7_2 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getContextsAssignment_7_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5447:1: ( rule__Op_decl__ContextsAssignment_7_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5447:2: rule__Op_decl__ContextsAssignment_7_2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__ContextsAssignment_7_2_in_rule__Op_decl__Group_7__2__Impl11470);
            rule__Op_decl__ContextsAssignment_7_2();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getContextsAssignment_7_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group_7__2__Impl


    // $ANTLR start rule__Op_decl__Group_7__3
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5457:1: rule__Op_decl__Group_7__3 : rule__Op_decl__Group_7__3__Impl rule__Op_decl__Group_7__4 ;
    public final void rule__Op_decl__Group_7__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5461:1: ( rule__Op_decl__Group_7__3__Impl rule__Op_decl__Group_7__4 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5462:2: rule__Op_decl__Group_7__3__Impl rule__Op_decl__Group_7__4
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_7__3__Impl_in_rule__Op_decl__Group_7__311500);
            rule__Op_decl__Group_7__3__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_7__4_in_rule__Op_decl__Group_7__311503);
            rule__Op_decl__Group_7__4();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group_7__3


    // $ANTLR start rule__Op_decl__Group_7__3__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5469:1: rule__Op_decl__Group_7__3__Impl : ( ( rule__Op_decl__Group_7_3__0 )* ) ;
    public final void rule__Op_decl__Group_7__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5473:1: ( ( ( rule__Op_decl__Group_7_3__0 )* ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5474:1: ( ( rule__Op_decl__Group_7_3__0 )* )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5474:1: ( ( rule__Op_decl__Group_7_3__0 )* )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5475:1: ( rule__Op_decl__Group_7_3__0 )*
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getGroup_7_3()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5476:1: ( rule__Op_decl__Group_7_3__0 )*
            loop63:
            do {
                int alt63=2;
                int LA63_0 = input.LA(1);

                if ( (LA63_0==49) ) {
                    alt63=1;
                }


                switch (alt63) {
            	case 1 :
            	    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5476:2: rule__Op_decl__Group_7_3__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_7_3__0_in_rule__Op_decl__Group_7__3__Impl11530);
            	    rule__Op_decl__Group_7_3__0();
            	    _fsp--;
            	    if (failed) return ;

            	    }
            	    break;

            	default :
            	    break loop63;
                }
            } while (true);

            if ( backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getGroup_7_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group_7__3__Impl


    // $ANTLR start rule__Op_decl__Group_7__4
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5486:1: rule__Op_decl__Group_7__4 : rule__Op_decl__Group_7__4__Impl ;
    public final void rule__Op_decl__Group_7__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5490:1: ( rule__Op_decl__Group_7__4__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5491:2: rule__Op_decl__Group_7__4__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_7__4__Impl_in_rule__Op_decl__Group_7__411561);
            rule__Op_decl__Group_7__4__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group_7__4


    // $ANTLR start rule__Op_decl__Group_7__4__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5497:1: rule__Op_decl__Group_7__4__Impl : ( ')' ) ;
    public final void rule__Op_decl__Group_7__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5501:1: ( ( ')' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5502:1: ( ')' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5502:1: ( ')' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5503:1: ')'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getRightParenthesisKeyword_7_4()); 
            }
            match(input,51,FollowSets000.FOLLOW_51_in_rule__Op_decl__Group_7__4__Impl11589); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getRightParenthesisKeyword_7_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group_7__4__Impl


    // $ANTLR start rule__Op_decl__Group_7_3__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5526:1: rule__Op_decl__Group_7_3__0 : rule__Op_decl__Group_7_3__0__Impl rule__Op_decl__Group_7_3__1 ;
    public final void rule__Op_decl__Group_7_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5530:1: ( rule__Op_decl__Group_7_3__0__Impl rule__Op_decl__Group_7_3__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5531:2: rule__Op_decl__Group_7_3__0__Impl rule__Op_decl__Group_7_3__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_7_3__0__Impl_in_rule__Op_decl__Group_7_3__011630);
            rule__Op_decl__Group_7_3__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_7_3__1_in_rule__Op_decl__Group_7_3__011633);
            rule__Op_decl__Group_7_3__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group_7_3__0


    // $ANTLR start rule__Op_decl__Group_7_3__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5538:1: rule__Op_decl__Group_7_3__0__Impl : ( ',' ) ;
    public final void rule__Op_decl__Group_7_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5542:1: ( ( ',' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5543:1: ( ',' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5543:1: ( ',' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5544:1: ','
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getCommaKeyword_7_3_0()); 
            }
            match(input,49,FollowSets000.FOLLOW_49_in_rule__Op_decl__Group_7_3__0__Impl11661); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getCommaKeyword_7_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group_7_3__0__Impl


    // $ANTLR start rule__Op_decl__Group_7_3__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5557:1: rule__Op_decl__Group_7_3__1 : rule__Op_decl__Group_7_3__1__Impl ;
    public final void rule__Op_decl__Group_7_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5561:1: ( rule__Op_decl__Group_7_3__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5562:2: rule__Op_decl__Group_7_3__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__Group_7_3__1__Impl_in_rule__Op_decl__Group_7_3__111692);
            rule__Op_decl__Group_7_3__1__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group_7_3__1


    // $ANTLR start rule__Op_decl__Group_7_3__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5568:1: rule__Op_decl__Group_7_3__1__Impl : ( ( rule__Op_decl__ContextsAssignment_7_3_1 ) ) ;
    public final void rule__Op_decl__Group_7_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5572:1: ( ( ( rule__Op_decl__ContextsAssignment_7_3_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5573:1: ( ( rule__Op_decl__ContextsAssignment_7_3_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5573:1: ( ( rule__Op_decl__ContextsAssignment_7_3_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5574:1: ( rule__Op_decl__ContextsAssignment_7_3_1 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getContextsAssignment_7_3_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5575:1: ( rule__Op_decl__ContextsAssignment_7_3_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5575:2: rule__Op_decl__ContextsAssignment_7_3_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_decl__ContextsAssignment_7_3_1_in_rule__Op_decl__Group_7_3__1__Impl11719);
            rule__Op_decl__ContextsAssignment_7_3_1();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getContextsAssignment_7_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__Group_7_3__1__Impl


    // $ANTLR start rule__Op_type_spec__Group_1__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5589:1: rule__Op_type_spec__Group_1__0 : rule__Op_type_spec__Group_1__0__Impl rule__Op_type_spec__Group_1__1 ;
    public final void rule__Op_type_spec__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5593:1: ( rule__Op_type_spec__Group_1__0__Impl rule__Op_type_spec__Group_1__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5594:2: rule__Op_type_spec__Group_1__0__Impl rule__Op_type_spec__Group_1__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_type_spec__Group_1__0__Impl_in_rule__Op_type_spec__Group_1__011753);
            rule__Op_type_spec__Group_1__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Op_type_spec__Group_1__1_in_rule__Op_type_spec__Group_1__011756);
            rule__Op_type_spec__Group_1__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_type_spec__Group_1__0


    // $ANTLR start rule__Op_type_spec__Group_1__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5601:1: rule__Op_type_spec__Group_1__0__Impl : ( () ) ;
    public final void rule__Op_type_spec__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5605:1: ( ( () ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5606:1: ( () )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5606:1: ( () )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5607:1: ()
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOp_type_specAccess().getPrimitiveDefAction_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5608:1: ()
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5610:1: 
            {
            }

            if ( backtracking==0 ) {
               after(grammarAccess.getOp_type_specAccess().getPrimitiveDefAction_1_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_type_spec__Group_1__0__Impl


    // $ANTLR start rule__Op_type_spec__Group_1__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5620:1: rule__Op_type_spec__Group_1__1 : rule__Op_type_spec__Group_1__1__Impl ;
    public final void rule__Op_type_spec__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5624:1: ( rule__Op_type_spec__Group_1__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5625:2: rule__Op_type_spec__Group_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_type_spec__Group_1__1__Impl_in_rule__Op_type_spec__Group_1__111814);
            rule__Op_type_spec__Group_1__1__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_type_spec__Group_1__1


    // $ANTLR start rule__Op_type_spec__Group_1__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5631:1: rule__Op_type_spec__Group_1__1__Impl : ( ( rule__Op_type_spec__KindAssignment_1_1 ) ) ;
    public final void rule__Op_type_spec__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5635:1: ( ( ( rule__Op_type_spec__KindAssignment_1_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5636:1: ( ( rule__Op_type_spec__KindAssignment_1_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5636:1: ( ( rule__Op_type_spec__KindAssignment_1_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5637:1: ( rule__Op_type_spec__KindAssignment_1_1 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOp_type_specAccess().getKindAssignment_1_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5638:1: ( rule__Op_type_spec__KindAssignment_1_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5638:2: rule__Op_type_spec__KindAssignment_1_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Op_type_spec__KindAssignment_1_1_in_rule__Op_type_spec__Group_1__1__Impl11841);
            rule__Op_type_spec__KindAssignment_1_1();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getOp_type_specAccess().getKindAssignment_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_type_spec__Group_1__1__Impl


    // $ANTLR start rule__Param_decl__Group__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5652:1: rule__Param_decl__Group__0 : rule__Param_decl__Group__0__Impl rule__Param_decl__Group__1 ;
    public final void rule__Param_decl__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5656:1: ( rule__Param_decl__Group__0__Impl rule__Param_decl__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5657:2: rule__Param_decl__Group__0__Impl rule__Param_decl__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Param_decl__Group__0__Impl_in_rule__Param_decl__Group__011875);
            rule__Param_decl__Group__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Param_decl__Group__1_in_rule__Param_decl__Group__011878);
            rule__Param_decl__Group__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Param_decl__Group__0


    // $ANTLR start rule__Param_decl__Group__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5664:1: rule__Param_decl__Group__0__Impl : ( ( rule__Param_decl__DirectionAssignment_0 ) ) ;
    public final void rule__Param_decl__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5668:1: ( ( ( rule__Param_decl__DirectionAssignment_0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5669:1: ( ( rule__Param_decl__DirectionAssignment_0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5669:1: ( ( rule__Param_decl__DirectionAssignment_0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5670:1: ( rule__Param_decl__DirectionAssignment_0 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getParam_declAccess().getDirectionAssignment_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5671:1: ( rule__Param_decl__DirectionAssignment_0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5671:2: rule__Param_decl__DirectionAssignment_0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Param_decl__DirectionAssignment_0_in_rule__Param_decl__Group__0__Impl11905);
            rule__Param_decl__DirectionAssignment_0();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getParam_declAccess().getDirectionAssignment_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Param_decl__Group__0__Impl


    // $ANTLR start rule__Param_decl__Group__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5681:1: rule__Param_decl__Group__1 : rule__Param_decl__Group__1__Impl rule__Param_decl__Group__2 ;
    public final void rule__Param_decl__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5685:1: ( rule__Param_decl__Group__1__Impl rule__Param_decl__Group__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5686:2: rule__Param_decl__Group__1__Impl rule__Param_decl__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Param_decl__Group__1__Impl_in_rule__Param_decl__Group__111935);
            rule__Param_decl__Group__1__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Param_decl__Group__2_in_rule__Param_decl__Group__111938);
            rule__Param_decl__Group__2();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Param_decl__Group__1


    // $ANTLR start rule__Param_decl__Group__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5693:1: rule__Param_decl__Group__1__Impl : ( ( rule__Param_decl__Alternatives_1 ) ) ;
    public final void rule__Param_decl__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5697:1: ( ( ( rule__Param_decl__Alternatives_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5698:1: ( ( rule__Param_decl__Alternatives_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5698:1: ( ( rule__Param_decl__Alternatives_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5699:1: ( rule__Param_decl__Alternatives_1 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getParam_declAccess().getAlternatives_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5700:1: ( rule__Param_decl__Alternatives_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5700:2: rule__Param_decl__Alternatives_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Param_decl__Alternatives_1_in_rule__Param_decl__Group__1__Impl11965);
            rule__Param_decl__Alternatives_1();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getParam_declAccess().getAlternatives_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Param_decl__Group__1__Impl


    // $ANTLR start rule__Param_decl__Group__2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5710:1: rule__Param_decl__Group__2 : rule__Param_decl__Group__2__Impl ;
    public final void rule__Param_decl__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5714:1: ( rule__Param_decl__Group__2__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5715:2: rule__Param_decl__Group__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Param_decl__Group__2__Impl_in_rule__Param_decl__Group__211995);
            rule__Param_decl__Group__2__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Param_decl__Group__2


    // $ANTLR start rule__Param_decl__Group__2__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5721:1: rule__Param_decl__Group__2__Impl : ( ( rule__Param_decl__IdentifierAssignment_2 ) ) ;
    public final void rule__Param_decl__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5725:1: ( ( ( rule__Param_decl__IdentifierAssignment_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5726:1: ( ( rule__Param_decl__IdentifierAssignment_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5726:1: ( ( rule__Param_decl__IdentifierAssignment_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5727:1: ( rule__Param_decl__IdentifierAssignment_2 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getParam_declAccess().getIdentifierAssignment_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5728:1: ( rule__Param_decl__IdentifierAssignment_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5728:2: rule__Param_decl__IdentifierAssignment_2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Param_decl__IdentifierAssignment_2_in_rule__Param_decl__Group__2__Impl12022);
            rule__Param_decl__IdentifierAssignment_2();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getParam_declAccess().getIdentifierAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Param_decl__Group__2__Impl


    // $ANTLR start rule__Readonly_attr_spec__Group_0__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5744:1: rule__Readonly_attr_spec__Group_0__0 : rule__Readonly_attr_spec__Group_0__0__Impl rule__Readonly_attr_spec__Group_0__1 ;
    public final void rule__Readonly_attr_spec__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5748:1: ( rule__Readonly_attr_spec__Group_0__0__Impl rule__Readonly_attr_spec__Group_0__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5749:2: rule__Readonly_attr_spec__Group_0__0__Impl rule__Readonly_attr_spec__Group_0__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_0__0__Impl_in_rule__Readonly_attr_spec__Group_0__012058);
            rule__Readonly_attr_spec__Group_0__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_0__1_in_rule__Readonly_attr_spec__Group_0__012061);
            rule__Readonly_attr_spec__Group_0__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Readonly_attr_spec__Group_0__0


    // $ANTLR start rule__Readonly_attr_spec__Group_0__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5756:1: rule__Readonly_attr_spec__Group_0__0__Impl : ( ( rule__Readonly_attr_spec__IsReadonlyAssignment_0_0 ) ) ;
    public final void rule__Readonly_attr_spec__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5760:1: ( ( ( rule__Readonly_attr_spec__IsReadonlyAssignment_0_0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5761:1: ( ( rule__Readonly_attr_spec__IsReadonlyAssignment_0_0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5761:1: ( ( rule__Readonly_attr_spec__IsReadonlyAssignment_0_0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5762:1: ( rule__Readonly_attr_spec__IsReadonlyAssignment_0_0 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getIsReadonlyAssignment_0_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5763:1: ( rule__Readonly_attr_spec__IsReadonlyAssignment_0_0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5763:2: rule__Readonly_attr_spec__IsReadonlyAssignment_0_0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__IsReadonlyAssignment_0_0_in_rule__Readonly_attr_spec__Group_0__0__Impl12088);
            rule__Readonly_attr_spec__IsReadonlyAssignment_0_0();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getIsReadonlyAssignment_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Readonly_attr_spec__Group_0__0__Impl


    // $ANTLR start rule__Readonly_attr_spec__Group_0__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5773:1: rule__Readonly_attr_spec__Group_0__1 : rule__Readonly_attr_spec__Group_0__1__Impl rule__Readonly_attr_spec__Group_0__2 ;
    public final void rule__Readonly_attr_spec__Group_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5777:1: ( rule__Readonly_attr_spec__Group_0__1__Impl rule__Readonly_attr_spec__Group_0__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5778:2: rule__Readonly_attr_spec__Group_0__1__Impl rule__Readonly_attr_spec__Group_0__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_0__1__Impl_in_rule__Readonly_attr_spec__Group_0__112118);
            rule__Readonly_attr_spec__Group_0__1__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_0__2_in_rule__Readonly_attr_spec__Group_0__112121);
            rule__Readonly_attr_spec__Group_0__2();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Readonly_attr_spec__Group_0__1


    // $ANTLR start rule__Readonly_attr_spec__Group_0__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5785:1: rule__Readonly_attr_spec__Group_0__1__Impl : ( 'attribute' ) ;
    public final void rule__Readonly_attr_spec__Group_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5789:1: ( ( 'attribute' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5790:1: ( 'attribute' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5790:1: ( 'attribute' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5791:1: 'attribute'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getAttributeKeyword_0_1()); 
            }
            match(input,54,FollowSets000.FOLLOW_54_in_rule__Readonly_attr_spec__Group_0__1__Impl12149); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getAttributeKeyword_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Readonly_attr_spec__Group_0__1__Impl


    // $ANTLR start rule__Readonly_attr_spec__Group_0__2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5804:1: rule__Readonly_attr_spec__Group_0__2 : rule__Readonly_attr_spec__Group_0__2__Impl rule__Readonly_attr_spec__Group_0__3 ;
    public final void rule__Readonly_attr_spec__Group_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5808:1: ( rule__Readonly_attr_spec__Group_0__2__Impl rule__Readonly_attr_spec__Group_0__3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5809:2: rule__Readonly_attr_spec__Group_0__2__Impl rule__Readonly_attr_spec__Group_0__3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_0__2__Impl_in_rule__Readonly_attr_spec__Group_0__212180);
            rule__Readonly_attr_spec__Group_0__2__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_0__3_in_rule__Readonly_attr_spec__Group_0__212183);
            rule__Readonly_attr_spec__Group_0__3();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Readonly_attr_spec__Group_0__2


    // $ANTLR start rule__Readonly_attr_spec__Group_0__2__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5816:1: rule__Readonly_attr_spec__Group_0__2__Impl : ( ( rule__Readonly_attr_spec__Alternatives_0_2 ) ) ;
    public final void rule__Readonly_attr_spec__Group_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5820:1: ( ( ( rule__Readonly_attr_spec__Alternatives_0_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5821:1: ( ( rule__Readonly_attr_spec__Alternatives_0_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5821:1: ( ( rule__Readonly_attr_spec__Alternatives_0_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5822:1: ( rule__Readonly_attr_spec__Alternatives_0_2 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getAlternatives_0_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5823:1: ( rule__Readonly_attr_spec__Alternatives_0_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5823:2: rule__Readonly_attr_spec__Alternatives_0_2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Alternatives_0_2_in_rule__Readonly_attr_spec__Group_0__2__Impl12210);
            rule__Readonly_attr_spec__Alternatives_0_2();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getAlternatives_0_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Readonly_attr_spec__Group_0__2__Impl


    // $ANTLR start rule__Readonly_attr_spec__Group_0__3
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5833:1: rule__Readonly_attr_spec__Group_0__3 : rule__Readonly_attr_spec__Group_0__3__Impl rule__Readonly_attr_spec__Group_0__4 ;
    public final void rule__Readonly_attr_spec__Group_0__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5837:1: ( rule__Readonly_attr_spec__Group_0__3__Impl rule__Readonly_attr_spec__Group_0__4 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5838:2: rule__Readonly_attr_spec__Group_0__3__Impl rule__Readonly_attr_spec__Group_0__4
            {
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_0__3__Impl_in_rule__Readonly_attr_spec__Group_0__312240);
            rule__Readonly_attr_spec__Group_0__3__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_0__4_in_rule__Readonly_attr_spec__Group_0__312243);
            rule__Readonly_attr_spec__Group_0__4();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Readonly_attr_spec__Group_0__3


    // $ANTLR start rule__Readonly_attr_spec__Group_0__3__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5845:1: rule__Readonly_attr_spec__Group_0__3__Impl : ( ( rule__Readonly_attr_spec__IdentifierAssignment_0_3 ) ) ;
    public final void rule__Readonly_attr_spec__Group_0__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5849:1: ( ( ( rule__Readonly_attr_spec__IdentifierAssignment_0_3 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5850:1: ( ( rule__Readonly_attr_spec__IdentifierAssignment_0_3 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5850:1: ( ( rule__Readonly_attr_spec__IdentifierAssignment_0_3 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5851:1: ( rule__Readonly_attr_spec__IdentifierAssignment_0_3 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getIdentifierAssignment_0_3()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5852:1: ( rule__Readonly_attr_spec__IdentifierAssignment_0_3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5852:2: rule__Readonly_attr_spec__IdentifierAssignment_0_3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__IdentifierAssignment_0_3_in_rule__Readonly_attr_spec__Group_0__3__Impl12270);
            rule__Readonly_attr_spec__IdentifierAssignment_0_3();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getIdentifierAssignment_0_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Readonly_attr_spec__Group_0__3__Impl


    // $ANTLR start rule__Readonly_attr_spec__Group_0__4
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5862:1: rule__Readonly_attr_spec__Group_0__4 : rule__Readonly_attr_spec__Group_0__4__Impl rule__Readonly_attr_spec__Group_0__5 ;
    public final void rule__Readonly_attr_spec__Group_0__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5866:1: ( rule__Readonly_attr_spec__Group_0__4__Impl rule__Readonly_attr_spec__Group_0__5 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5867:2: rule__Readonly_attr_spec__Group_0__4__Impl rule__Readonly_attr_spec__Group_0__5
            {
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_0__4__Impl_in_rule__Readonly_attr_spec__Group_0__412300);
            rule__Readonly_attr_spec__Group_0__4__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_0__5_in_rule__Readonly_attr_spec__Group_0__412303);
            rule__Readonly_attr_spec__Group_0__5();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Readonly_attr_spec__Group_0__4


    // $ANTLR start rule__Readonly_attr_spec__Group_0__4__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5874:1: rule__Readonly_attr_spec__Group_0__4__Impl : ( 'raises' ) ;
    public final void rule__Readonly_attr_spec__Group_0__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5878:1: ( ( 'raises' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5879:1: ( 'raises' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5879:1: ( 'raises' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5880:1: 'raises'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getRaisesKeyword_0_4()); 
            }
            match(input,52,FollowSets000.FOLLOW_52_in_rule__Readonly_attr_spec__Group_0__4__Impl12331); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getRaisesKeyword_0_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Readonly_attr_spec__Group_0__4__Impl


    // $ANTLR start rule__Readonly_attr_spec__Group_0__5
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5893:1: rule__Readonly_attr_spec__Group_0__5 : rule__Readonly_attr_spec__Group_0__5__Impl rule__Readonly_attr_spec__Group_0__6 ;
    public final void rule__Readonly_attr_spec__Group_0__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5897:1: ( rule__Readonly_attr_spec__Group_0__5__Impl rule__Readonly_attr_spec__Group_0__6 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5898:2: rule__Readonly_attr_spec__Group_0__5__Impl rule__Readonly_attr_spec__Group_0__6
            {
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_0__5__Impl_in_rule__Readonly_attr_spec__Group_0__512362);
            rule__Readonly_attr_spec__Group_0__5__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_0__6_in_rule__Readonly_attr_spec__Group_0__512365);
            rule__Readonly_attr_spec__Group_0__6();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Readonly_attr_spec__Group_0__5


    // $ANTLR start rule__Readonly_attr_spec__Group_0__5__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5905:1: rule__Readonly_attr_spec__Group_0__5__Impl : ( '(' ) ;
    public final void rule__Readonly_attr_spec__Group_0__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5909:1: ( ( '(' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5910:1: ( '(' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5910:1: ( '(' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5911:1: '('
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getLeftParenthesisKeyword_0_5()); 
            }
            match(input,50,FollowSets000.FOLLOW_50_in_rule__Readonly_attr_spec__Group_0__5__Impl12393); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getLeftParenthesisKeyword_0_5()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Readonly_attr_spec__Group_0__5__Impl


    // $ANTLR start rule__Readonly_attr_spec__Group_0__6
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5924:1: rule__Readonly_attr_spec__Group_0__6 : rule__Readonly_attr_spec__Group_0__6__Impl rule__Readonly_attr_spec__Group_0__7 ;
    public final void rule__Readonly_attr_spec__Group_0__6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5928:1: ( rule__Readonly_attr_spec__Group_0__6__Impl rule__Readonly_attr_spec__Group_0__7 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5929:2: rule__Readonly_attr_spec__Group_0__6__Impl rule__Readonly_attr_spec__Group_0__7
            {
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_0__6__Impl_in_rule__Readonly_attr_spec__Group_0__612424);
            rule__Readonly_attr_spec__Group_0__6__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_0__7_in_rule__Readonly_attr_spec__Group_0__612427);
            rule__Readonly_attr_spec__Group_0__7();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Readonly_attr_spec__Group_0__6


    // $ANTLR start rule__Readonly_attr_spec__Group_0__6__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5936:1: rule__Readonly_attr_spec__Group_0__6__Impl : ( ( rule__Readonly_attr_spec__GetRaisesAssignment_0_6 ) ) ;
    public final void rule__Readonly_attr_spec__Group_0__6__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5940:1: ( ( ( rule__Readonly_attr_spec__GetRaisesAssignment_0_6 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5941:1: ( ( rule__Readonly_attr_spec__GetRaisesAssignment_0_6 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5941:1: ( ( rule__Readonly_attr_spec__GetRaisesAssignment_0_6 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5942:1: ( rule__Readonly_attr_spec__GetRaisesAssignment_0_6 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getGetRaisesAssignment_0_6()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5943:1: ( rule__Readonly_attr_spec__GetRaisesAssignment_0_6 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5943:2: rule__Readonly_attr_spec__GetRaisesAssignment_0_6
            {
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__GetRaisesAssignment_0_6_in_rule__Readonly_attr_spec__Group_0__6__Impl12454);
            rule__Readonly_attr_spec__GetRaisesAssignment_0_6();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getGetRaisesAssignment_0_6()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Readonly_attr_spec__Group_0__6__Impl


    // $ANTLR start rule__Readonly_attr_spec__Group_0__7
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5953:1: rule__Readonly_attr_spec__Group_0__7 : rule__Readonly_attr_spec__Group_0__7__Impl rule__Readonly_attr_spec__Group_0__8 ;
    public final void rule__Readonly_attr_spec__Group_0__7() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5957:1: ( rule__Readonly_attr_spec__Group_0__7__Impl rule__Readonly_attr_spec__Group_0__8 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5958:2: rule__Readonly_attr_spec__Group_0__7__Impl rule__Readonly_attr_spec__Group_0__8
            {
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_0__7__Impl_in_rule__Readonly_attr_spec__Group_0__712484);
            rule__Readonly_attr_spec__Group_0__7__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_0__8_in_rule__Readonly_attr_spec__Group_0__712487);
            rule__Readonly_attr_spec__Group_0__8();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Readonly_attr_spec__Group_0__7


    // $ANTLR start rule__Readonly_attr_spec__Group_0__7__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5965:1: rule__Readonly_attr_spec__Group_0__7__Impl : ( ( rule__Readonly_attr_spec__Group_0_7__0 )* ) ;
    public final void rule__Readonly_attr_spec__Group_0__7__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5969:1: ( ( ( rule__Readonly_attr_spec__Group_0_7__0 )* ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5970:1: ( ( rule__Readonly_attr_spec__Group_0_7__0 )* )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5970:1: ( ( rule__Readonly_attr_spec__Group_0_7__0 )* )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5971:1: ( rule__Readonly_attr_spec__Group_0_7__0 )*
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getGroup_0_7()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5972:1: ( rule__Readonly_attr_spec__Group_0_7__0 )*
            loop64:
            do {
                int alt64=2;
                int LA64_0 = input.LA(1);

                if ( (LA64_0==49) ) {
                    alt64=1;
                }


                switch (alt64) {
            	case 1 :
            	    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5972:2: rule__Readonly_attr_spec__Group_0_7__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_0_7__0_in_rule__Readonly_attr_spec__Group_0__7__Impl12514);
            	    rule__Readonly_attr_spec__Group_0_7__0();
            	    _fsp--;
            	    if (failed) return ;

            	    }
            	    break;

            	default :
            	    break loop64;
                }
            } while (true);

            if ( backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getGroup_0_7()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Readonly_attr_spec__Group_0__7__Impl


    // $ANTLR start rule__Readonly_attr_spec__Group_0__8
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5982:1: rule__Readonly_attr_spec__Group_0__8 : rule__Readonly_attr_spec__Group_0__8__Impl ;
    public final void rule__Readonly_attr_spec__Group_0__8() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5986:1: ( rule__Readonly_attr_spec__Group_0__8__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5987:2: rule__Readonly_attr_spec__Group_0__8__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_0__8__Impl_in_rule__Readonly_attr_spec__Group_0__812545);
            rule__Readonly_attr_spec__Group_0__8__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Readonly_attr_spec__Group_0__8


    // $ANTLR start rule__Readonly_attr_spec__Group_0__8__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5993:1: rule__Readonly_attr_spec__Group_0__8__Impl : ( ')' ) ;
    public final void rule__Readonly_attr_spec__Group_0__8__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5997:1: ( ( ')' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5998:1: ( ')' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5998:1: ( ')' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:5999:1: ')'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getRightParenthesisKeyword_0_8()); 
            }
            match(input,51,FollowSets000.FOLLOW_51_in_rule__Readonly_attr_spec__Group_0__8__Impl12573); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getRightParenthesisKeyword_0_8()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Readonly_attr_spec__Group_0__8__Impl


    // $ANTLR start rule__Readonly_attr_spec__Group_0_7__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6030:1: rule__Readonly_attr_spec__Group_0_7__0 : rule__Readonly_attr_spec__Group_0_7__0__Impl rule__Readonly_attr_spec__Group_0_7__1 ;
    public final void rule__Readonly_attr_spec__Group_0_7__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6034:1: ( rule__Readonly_attr_spec__Group_0_7__0__Impl rule__Readonly_attr_spec__Group_0_7__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6035:2: rule__Readonly_attr_spec__Group_0_7__0__Impl rule__Readonly_attr_spec__Group_0_7__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_0_7__0__Impl_in_rule__Readonly_attr_spec__Group_0_7__012622);
            rule__Readonly_attr_spec__Group_0_7__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_0_7__1_in_rule__Readonly_attr_spec__Group_0_7__012625);
            rule__Readonly_attr_spec__Group_0_7__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Readonly_attr_spec__Group_0_7__0


    // $ANTLR start rule__Readonly_attr_spec__Group_0_7__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6042:1: rule__Readonly_attr_spec__Group_0_7__0__Impl : ( ',' ) ;
    public final void rule__Readonly_attr_spec__Group_0_7__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6046:1: ( ( ',' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6047:1: ( ',' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6047:1: ( ',' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6048:1: ','
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getCommaKeyword_0_7_0()); 
            }
            match(input,49,FollowSets000.FOLLOW_49_in_rule__Readonly_attr_spec__Group_0_7__0__Impl12653); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getCommaKeyword_0_7_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Readonly_attr_spec__Group_0_7__0__Impl


    // $ANTLR start rule__Readonly_attr_spec__Group_0_7__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6061:1: rule__Readonly_attr_spec__Group_0_7__1 : rule__Readonly_attr_spec__Group_0_7__1__Impl ;
    public final void rule__Readonly_attr_spec__Group_0_7__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6065:1: ( rule__Readonly_attr_spec__Group_0_7__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6066:2: rule__Readonly_attr_spec__Group_0_7__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_0_7__1__Impl_in_rule__Readonly_attr_spec__Group_0_7__112684);
            rule__Readonly_attr_spec__Group_0_7__1__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Readonly_attr_spec__Group_0_7__1


    // $ANTLR start rule__Readonly_attr_spec__Group_0_7__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6072:1: rule__Readonly_attr_spec__Group_0_7__1__Impl : ( ( rule__Readonly_attr_spec__GetRaisesAssignment_0_7_1 ) ) ;
    public final void rule__Readonly_attr_spec__Group_0_7__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6076:1: ( ( ( rule__Readonly_attr_spec__GetRaisesAssignment_0_7_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6077:1: ( ( rule__Readonly_attr_spec__GetRaisesAssignment_0_7_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6077:1: ( ( rule__Readonly_attr_spec__GetRaisesAssignment_0_7_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6078:1: ( rule__Readonly_attr_spec__GetRaisesAssignment_0_7_1 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getGetRaisesAssignment_0_7_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6079:1: ( rule__Readonly_attr_spec__GetRaisesAssignment_0_7_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6079:2: rule__Readonly_attr_spec__GetRaisesAssignment_0_7_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__GetRaisesAssignment_0_7_1_in_rule__Readonly_attr_spec__Group_0_7__1__Impl12711);
            rule__Readonly_attr_spec__GetRaisesAssignment_0_7_1();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getGetRaisesAssignment_0_7_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Readonly_attr_spec__Group_0_7__1__Impl


    // $ANTLR start rule__Readonly_attr_spec__Group_1__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6093:1: rule__Readonly_attr_spec__Group_1__0 : rule__Readonly_attr_spec__Group_1__0__Impl rule__Readonly_attr_spec__Group_1__1 ;
    public final void rule__Readonly_attr_spec__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6097:1: ( rule__Readonly_attr_spec__Group_1__0__Impl rule__Readonly_attr_spec__Group_1__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6098:2: rule__Readonly_attr_spec__Group_1__0__Impl rule__Readonly_attr_spec__Group_1__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_1__0__Impl_in_rule__Readonly_attr_spec__Group_1__012745);
            rule__Readonly_attr_spec__Group_1__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_1__1_in_rule__Readonly_attr_spec__Group_1__012748);
            rule__Readonly_attr_spec__Group_1__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Readonly_attr_spec__Group_1__0


    // $ANTLR start rule__Readonly_attr_spec__Group_1__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6105:1: rule__Readonly_attr_spec__Group_1__0__Impl : ( ( rule__Readonly_attr_spec__IsReadonlyAssignment_1_0 ) ) ;
    public final void rule__Readonly_attr_spec__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6109:1: ( ( ( rule__Readonly_attr_spec__IsReadonlyAssignment_1_0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6110:1: ( ( rule__Readonly_attr_spec__IsReadonlyAssignment_1_0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6110:1: ( ( rule__Readonly_attr_spec__IsReadonlyAssignment_1_0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6111:1: ( rule__Readonly_attr_spec__IsReadonlyAssignment_1_0 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getIsReadonlyAssignment_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6112:1: ( rule__Readonly_attr_spec__IsReadonlyAssignment_1_0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6112:2: rule__Readonly_attr_spec__IsReadonlyAssignment_1_0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__IsReadonlyAssignment_1_0_in_rule__Readonly_attr_spec__Group_1__0__Impl12775);
            rule__Readonly_attr_spec__IsReadonlyAssignment_1_0();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getIsReadonlyAssignment_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Readonly_attr_spec__Group_1__0__Impl


    // $ANTLR start rule__Readonly_attr_spec__Group_1__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6122:1: rule__Readonly_attr_spec__Group_1__1 : rule__Readonly_attr_spec__Group_1__1__Impl rule__Readonly_attr_spec__Group_1__2 ;
    public final void rule__Readonly_attr_spec__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6126:1: ( rule__Readonly_attr_spec__Group_1__1__Impl rule__Readonly_attr_spec__Group_1__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6127:2: rule__Readonly_attr_spec__Group_1__1__Impl rule__Readonly_attr_spec__Group_1__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_1__1__Impl_in_rule__Readonly_attr_spec__Group_1__112805);
            rule__Readonly_attr_spec__Group_1__1__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_1__2_in_rule__Readonly_attr_spec__Group_1__112808);
            rule__Readonly_attr_spec__Group_1__2();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Readonly_attr_spec__Group_1__1


    // $ANTLR start rule__Readonly_attr_spec__Group_1__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6134:1: rule__Readonly_attr_spec__Group_1__1__Impl : ( 'attribute' ) ;
    public final void rule__Readonly_attr_spec__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6138:1: ( ( 'attribute' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6139:1: ( 'attribute' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6139:1: ( 'attribute' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6140:1: 'attribute'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getAttributeKeyword_1_1()); 
            }
            match(input,54,FollowSets000.FOLLOW_54_in_rule__Readonly_attr_spec__Group_1__1__Impl12836); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getAttributeKeyword_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Readonly_attr_spec__Group_1__1__Impl


    // $ANTLR start rule__Readonly_attr_spec__Group_1__2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6153:1: rule__Readonly_attr_spec__Group_1__2 : rule__Readonly_attr_spec__Group_1__2__Impl rule__Readonly_attr_spec__Group_1__3 ;
    public final void rule__Readonly_attr_spec__Group_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6157:1: ( rule__Readonly_attr_spec__Group_1__2__Impl rule__Readonly_attr_spec__Group_1__3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6158:2: rule__Readonly_attr_spec__Group_1__2__Impl rule__Readonly_attr_spec__Group_1__3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_1__2__Impl_in_rule__Readonly_attr_spec__Group_1__212867);
            rule__Readonly_attr_spec__Group_1__2__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_1__3_in_rule__Readonly_attr_spec__Group_1__212870);
            rule__Readonly_attr_spec__Group_1__3();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Readonly_attr_spec__Group_1__2


    // $ANTLR start rule__Readonly_attr_spec__Group_1__2__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6165:1: rule__Readonly_attr_spec__Group_1__2__Impl : ( ( rule__Readonly_attr_spec__Alternatives_1_2 ) ) ;
    public final void rule__Readonly_attr_spec__Group_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6169:1: ( ( ( rule__Readonly_attr_spec__Alternatives_1_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6170:1: ( ( rule__Readonly_attr_spec__Alternatives_1_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6170:1: ( ( rule__Readonly_attr_spec__Alternatives_1_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6171:1: ( rule__Readonly_attr_spec__Alternatives_1_2 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getAlternatives_1_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6172:1: ( rule__Readonly_attr_spec__Alternatives_1_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6172:2: rule__Readonly_attr_spec__Alternatives_1_2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Alternatives_1_2_in_rule__Readonly_attr_spec__Group_1__2__Impl12897);
            rule__Readonly_attr_spec__Alternatives_1_2();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getAlternatives_1_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Readonly_attr_spec__Group_1__2__Impl


    // $ANTLR start rule__Readonly_attr_spec__Group_1__3
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6182:1: rule__Readonly_attr_spec__Group_1__3 : rule__Readonly_attr_spec__Group_1__3__Impl ;
    public final void rule__Readonly_attr_spec__Group_1__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6186:1: ( rule__Readonly_attr_spec__Group_1__3__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6187:2: rule__Readonly_attr_spec__Group_1__3__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__Group_1__3__Impl_in_rule__Readonly_attr_spec__Group_1__312927);
            rule__Readonly_attr_spec__Group_1__3__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Readonly_attr_spec__Group_1__3


    // $ANTLR start rule__Readonly_attr_spec__Group_1__3__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6193:1: rule__Readonly_attr_spec__Group_1__3__Impl : ( ( rule__Readonly_attr_spec__IdentifierAssignment_1_3 ) ) ;
    public final void rule__Readonly_attr_spec__Group_1__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6197:1: ( ( ( rule__Readonly_attr_spec__IdentifierAssignment_1_3 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6198:1: ( ( rule__Readonly_attr_spec__IdentifierAssignment_1_3 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6198:1: ( ( rule__Readonly_attr_spec__IdentifierAssignment_1_3 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6199:1: ( rule__Readonly_attr_spec__IdentifierAssignment_1_3 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getIdentifierAssignment_1_3()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6200:1: ( rule__Readonly_attr_spec__IdentifierAssignment_1_3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6200:2: rule__Readonly_attr_spec__IdentifierAssignment_1_3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Readonly_attr_spec__IdentifierAssignment_1_3_in_rule__Readonly_attr_spec__Group_1__3__Impl12954);
            rule__Readonly_attr_spec__IdentifierAssignment_1_3();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getIdentifierAssignment_1_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Readonly_attr_spec__Group_1__3__Impl


    // $ANTLR start rule__Attr_spec__Group_0__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6218:1: rule__Attr_spec__Group_0__0 : rule__Attr_spec__Group_0__0__Impl rule__Attr_spec__Group_0__1 ;
    public final void rule__Attr_spec__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6222:1: ( rule__Attr_spec__Group_0__0__Impl rule__Attr_spec__Group_0__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6223:2: rule__Attr_spec__Group_0__0__Impl rule__Attr_spec__Group_0__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0__0__Impl_in_rule__Attr_spec__Group_0__012992);
            rule__Attr_spec__Group_0__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0__1_in_rule__Attr_spec__Group_0__012995);
            rule__Attr_spec__Group_0__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0__0


    // $ANTLR start rule__Attr_spec__Group_0__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6230:1: rule__Attr_spec__Group_0__0__Impl : ( 'attribute' ) ;
    public final void rule__Attr_spec__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6234:1: ( ( 'attribute' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6235:1: ( 'attribute' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6235:1: ( 'attribute' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6236:1: 'attribute'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getAttributeKeyword_0_0()); 
            }
            match(input,54,FollowSets000.FOLLOW_54_in_rule__Attr_spec__Group_0__0__Impl13023); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getAttributeKeyword_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0__0__Impl


    // $ANTLR start rule__Attr_spec__Group_0__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6249:1: rule__Attr_spec__Group_0__1 : rule__Attr_spec__Group_0__1__Impl rule__Attr_spec__Group_0__2 ;
    public final void rule__Attr_spec__Group_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6253:1: ( rule__Attr_spec__Group_0__1__Impl rule__Attr_spec__Group_0__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6254:2: rule__Attr_spec__Group_0__1__Impl rule__Attr_spec__Group_0__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0__1__Impl_in_rule__Attr_spec__Group_0__113054);
            rule__Attr_spec__Group_0__1__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0__2_in_rule__Attr_spec__Group_0__113057);
            rule__Attr_spec__Group_0__2();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0__1


    // $ANTLR start rule__Attr_spec__Group_0__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6261:1: rule__Attr_spec__Group_0__1__Impl : ( ( rule__Attr_spec__Alternatives_0_1 ) ) ;
    public final void rule__Attr_spec__Group_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6265:1: ( ( ( rule__Attr_spec__Alternatives_0_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6266:1: ( ( rule__Attr_spec__Alternatives_0_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6266:1: ( ( rule__Attr_spec__Alternatives_0_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6267:1: ( rule__Attr_spec__Alternatives_0_1 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getAlternatives_0_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6268:1: ( rule__Attr_spec__Alternatives_0_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6268:2: rule__Attr_spec__Alternatives_0_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Alternatives_0_1_in_rule__Attr_spec__Group_0__1__Impl13084);
            rule__Attr_spec__Alternatives_0_1();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getAlternatives_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0__1__Impl


    // $ANTLR start rule__Attr_spec__Group_0__2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6278:1: rule__Attr_spec__Group_0__2 : rule__Attr_spec__Group_0__2__Impl rule__Attr_spec__Group_0__3 ;
    public final void rule__Attr_spec__Group_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6282:1: ( rule__Attr_spec__Group_0__2__Impl rule__Attr_spec__Group_0__3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6283:2: rule__Attr_spec__Group_0__2__Impl rule__Attr_spec__Group_0__3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0__2__Impl_in_rule__Attr_spec__Group_0__213114);
            rule__Attr_spec__Group_0__2__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0__3_in_rule__Attr_spec__Group_0__213117);
            rule__Attr_spec__Group_0__3();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0__2


    // $ANTLR start rule__Attr_spec__Group_0__2__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6290:1: rule__Attr_spec__Group_0__2__Impl : ( ( rule__Attr_spec__IdentifierAssignment_0_2 ) ) ;
    public final void rule__Attr_spec__Group_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6294:1: ( ( ( rule__Attr_spec__IdentifierAssignment_0_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6295:1: ( ( rule__Attr_spec__IdentifierAssignment_0_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6295:1: ( ( rule__Attr_spec__IdentifierAssignment_0_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6296:1: ( rule__Attr_spec__IdentifierAssignment_0_2 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getIdentifierAssignment_0_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6297:1: ( rule__Attr_spec__IdentifierAssignment_0_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6297:2: rule__Attr_spec__IdentifierAssignment_0_2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__IdentifierAssignment_0_2_in_rule__Attr_spec__Group_0__2__Impl13144);
            rule__Attr_spec__IdentifierAssignment_0_2();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getIdentifierAssignment_0_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0__2__Impl


    // $ANTLR start rule__Attr_spec__Group_0__3
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6307:1: rule__Attr_spec__Group_0__3 : rule__Attr_spec__Group_0__3__Impl ;
    public final void rule__Attr_spec__Group_0__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6311:1: ( rule__Attr_spec__Group_0__3__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6312:2: rule__Attr_spec__Group_0__3__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0__3__Impl_in_rule__Attr_spec__Group_0__313174);
            rule__Attr_spec__Group_0__3__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0__3


    // $ANTLR start rule__Attr_spec__Group_0__3__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6318:1: rule__Attr_spec__Group_0__3__Impl : ( ( rule__Attr_spec__Alternatives_0_3 ) ) ;
    public final void rule__Attr_spec__Group_0__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6322:1: ( ( ( rule__Attr_spec__Alternatives_0_3 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6323:1: ( ( rule__Attr_spec__Alternatives_0_3 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6323:1: ( ( rule__Attr_spec__Alternatives_0_3 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6324:1: ( rule__Attr_spec__Alternatives_0_3 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getAlternatives_0_3()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6325:1: ( rule__Attr_spec__Alternatives_0_3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6325:2: rule__Attr_spec__Alternatives_0_3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Alternatives_0_3_in_rule__Attr_spec__Group_0__3__Impl13201);
            rule__Attr_spec__Alternatives_0_3();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getAlternatives_0_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0__3__Impl


    // $ANTLR start rule__Attr_spec__Group_0_3_0__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6343:1: rule__Attr_spec__Group_0_3_0__0 : rule__Attr_spec__Group_0_3_0__0__Impl rule__Attr_spec__Group_0_3_0__1 ;
    public final void rule__Attr_spec__Group_0_3_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6347:1: ( rule__Attr_spec__Group_0_3_0__0__Impl rule__Attr_spec__Group_0_3_0__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6348:2: rule__Attr_spec__Group_0_3_0__0__Impl rule__Attr_spec__Group_0_3_0__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0__0__Impl_in_rule__Attr_spec__Group_0_3_0__013239);
            rule__Attr_spec__Group_0_3_0__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0__1_in_rule__Attr_spec__Group_0_3_0__013242);
            rule__Attr_spec__Group_0_3_0__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0_3_0__0


    // $ANTLR start rule__Attr_spec__Group_0_3_0__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6355:1: rule__Attr_spec__Group_0_3_0__0__Impl : ( 'getraises' ) ;
    public final void rule__Attr_spec__Group_0_3_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6359:1: ( ( 'getraises' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6360:1: ( 'getraises' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6360:1: ( 'getraises' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6361:1: 'getraises'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getGetraisesKeyword_0_3_0_0()); 
            }
            match(input,55,FollowSets000.FOLLOW_55_in_rule__Attr_spec__Group_0_3_0__0__Impl13270); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getGetraisesKeyword_0_3_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0_3_0__0__Impl


    // $ANTLR start rule__Attr_spec__Group_0_3_0__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6374:1: rule__Attr_spec__Group_0_3_0__1 : rule__Attr_spec__Group_0_3_0__1__Impl rule__Attr_spec__Group_0_3_0__2 ;
    public final void rule__Attr_spec__Group_0_3_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6378:1: ( rule__Attr_spec__Group_0_3_0__1__Impl rule__Attr_spec__Group_0_3_0__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6379:2: rule__Attr_spec__Group_0_3_0__1__Impl rule__Attr_spec__Group_0_3_0__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0__1__Impl_in_rule__Attr_spec__Group_0_3_0__113301);
            rule__Attr_spec__Group_0_3_0__1__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0__2_in_rule__Attr_spec__Group_0_3_0__113304);
            rule__Attr_spec__Group_0_3_0__2();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0_3_0__1


    // $ANTLR start rule__Attr_spec__Group_0_3_0__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6386:1: rule__Attr_spec__Group_0_3_0__1__Impl : ( '(' ) ;
    public final void rule__Attr_spec__Group_0_3_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6390:1: ( ( '(' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6391:1: ( '(' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6391:1: ( '(' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6392:1: '('
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getLeftParenthesisKeyword_0_3_0_1()); 
            }
            match(input,50,FollowSets000.FOLLOW_50_in_rule__Attr_spec__Group_0_3_0__1__Impl13332); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getLeftParenthesisKeyword_0_3_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0_3_0__1__Impl


    // $ANTLR start rule__Attr_spec__Group_0_3_0__2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6405:1: rule__Attr_spec__Group_0_3_0__2 : rule__Attr_spec__Group_0_3_0__2__Impl rule__Attr_spec__Group_0_3_0__3 ;
    public final void rule__Attr_spec__Group_0_3_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6409:1: ( rule__Attr_spec__Group_0_3_0__2__Impl rule__Attr_spec__Group_0_3_0__3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6410:2: rule__Attr_spec__Group_0_3_0__2__Impl rule__Attr_spec__Group_0_3_0__3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0__2__Impl_in_rule__Attr_spec__Group_0_3_0__213363);
            rule__Attr_spec__Group_0_3_0__2__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0__3_in_rule__Attr_spec__Group_0_3_0__213366);
            rule__Attr_spec__Group_0_3_0__3();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0_3_0__2


    // $ANTLR start rule__Attr_spec__Group_0_3_0__2__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6417:1: rule__Attr_spec__Group_0_3_0__2__Impl : ( ( rule__Attr_spec__GetRaisesAssignment_0_3_0_2 ) ) ;
    public final void rule__Attr_spec__Group_0_3_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6421:1: ( ( ( rule__Attr_spec__GetRaisesAssignment_0_3_0_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6422:1: ( ( rule__Attr_spec__GetRaisesAssignment_0_3_0_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6422:1: ( ( rule__Attr_spec__GetRaisesAssignment_0_3_0_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6423:1: ( rule__Attr_spec__GetRaisesAssignment_0_3_0_2 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getGetRaisesAssignment_0_3_0_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6424:1: ( rule__Attr_spec__GetRaisesAssignment_0_3_0_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6424:2: rule__Attr_spec__GetRaisesAssignment_0_3_0_2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__GetRaisesAssignment_0_3_0_2_in_rule__Attr_spec__Group_0_3_0__2__Impl13393);
            rule__Attr_spec__GetRaisesAssignment_0_3_0_2();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getGetRaisesAssignment_0_3_0_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0_3_0__2__Impl


    // $ANTLR start rule__Attr_spec__Group_0_3_0__3
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6434:1: rule__Attr_spec__Group_0_3_0__3 : rule__Attr_spec__Group_0_3_0__3__Impl rule__Attr_spec__Group_0_3_0__4 ;
    public final void rule__Attr_spec__Group_0_3_0__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6438:1: ( rule__Attr_spec__Group_0_3_0__3__Impl rule__Attr_spec__Group_0_3_0__4 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6439:2: rule__Attr_spec__Group_0_3_0__3__Impl rule__Attr_spec__Group_0_3_0__4
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0__3__Impl_in_rule__Attr_spec__Group_0_3_0__313423);
            rule__Attr_spec__Group_0_3_0__3__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0__4_in_rule__Attr_spec__Group_0_3_0__313426);
            rule__Attr_spec__Group_0_3_0__4();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0_3_0__3


    // $ANTLR start rule__Attr_spec__Group_0_3_0__3__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6446:1: rule__Attr_spec__Group_0_3_0__3__Impl : ( ( rule__Attr_spec__Group_0_3_0_3__0 )* ) ;
    public final void rule__Attr_spec__Group_0_3_0__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6450:1: ( ( ( rule__Attr_spec__Group_0_3_0_3__0 )* ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6451:1: ( ( rule__Attr_spec__Group_0_3_0_3__0 )* )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6451:1: ( ( rule__Attr_spec__Group_0_3_0_3__0 )* )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6452:1: ( rule__Attr_spec__Group_0_3_0_3__0 )*
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getGroup_0_3_0_3()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6453:1: ( rule__Attr_spec__Group_0_3_0_3__0 )*
            loop65:
            do {
                int alt65=2;
                int LA65_0 = input.LA(1);

                if ( (LA65_0==49) ) {
                    alt65=1;
                }


                switch (alt65) {
            	case 1 :
            	    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6453:2: rule__Attr_spec__Group_0_3_0_3__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0_3__0_in_rule__Attr_spec__Group_0_3_0__3__Impl13453);
            	    rule__Attr_spec__Group_0_3_0_3__0();
            	    _fsp--;
            	    if (failed) return ;

            	    }
            	    break;

            	default :
            	    break loop65;
                }
            } while (true);

            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getGroup_0_3_0_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0_3_0__3__Impl


    // $ANTLR start rule__Attr_spec__Group_0_3_0__4
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6463:1: rule__Attr_spec__Group_0_3_0__4 : rule__Attr_spec__Group_0_3_0__4__Impl rule__Attr_spec__Group_0_3_0__5 ;
    public final void rule__Attr_spec__Group_0_3_0__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6467:1: ( rule__Attr_spec__Group_0_3_0__4__Impl rule__Attr_spec__Group_0_3_0__5 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6468:2: rule__Attr_spec__Group_0_3_0__4__Impl rule__Attr_spec__Group_0_3_0__5
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0__4__Impl_in_rule__Attr_spec__Group_0_3_0__413484);
            rule__Attr_spec__Group_0_3_0__4__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0__5_in_rule__Attr_spec__Group_0_3_0__413487);
            rule__Attr_spec__Group_0_3_0__5();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0_3_0__4


    // $ANTLR start rule__Attr_spec__Group_0_3_0__4__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6475:1: rule__Attr_spec__Group_0_3_0__4__Impl : ( ')' ) ;
    public final void rule__Attr_spec__Group_0_3_0__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6479:1: ( ( ')' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6480:1: ( ')' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6480:1: ( ')' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6481:1: ')'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getRightParenthesisKeyword_0_3_0_4()); 
            }
            match(input,51,FollowSets000.FOLLOW_51_in_rule__Attr_spec__Group_0_3_0__4__Impl13515); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getRightParenthesisKeyword_0_3_0_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0_3_0__4__Impl


    // $ANTLR start rule__Attr_spec__Group_0_3_0__5
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6494:1: rule__Attr_spec__Group_0_3_0__5 : rule__Attr_spec__Group_0_3_0__5__Impl ;
    public final void rule__Attr_spec__Group_0_3_0__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6498:1: ( rule__Attr_spec__Group_0_3_0__5__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6499:2: rule__Attr_spec__Group_0_3_0__5__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0__5__Impl_in_rule__Attr_spec__Group_0_3_0__513546);
            rule__Attr_spec__Group_0_3_0__5__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0_3_0__5


    // $ANTLR start rule__Attr_spec__Group_0_3_0__5__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6505:1: rule__Attr_spec__Group_0_3_0__5__Impl : ( ( rule__Attr_spec__Group_0_3_0_5__0 )? ) ;
    public final void rule__Attr_spec__Group_0_3_0__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6509:1: ( ( ( rule__Attr_spec__Group_0_3_0_5__0 )? ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6510:1: ( ( rule__Attr_spec__Group_0_3_0_5__0 )? )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6510:1: ( ( rule__Attr_spec__Group_0_3_0_5__0 )? )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6511:1: ( rule__Attr_spec__Group_0_3_0_5__0 )?
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getGroup_0_3_0_5()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6512:1: ( rule__Attr_spec__Group_0_3_0_5__0 )?
            int alt66=2;
            int LA66_0 = input.LA(1);

            if ( (LA66_0==56) ) {
                alt66=1;
            }
            switch (alt66) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6512:2: rule__Attr_spec__Group_0_3_0_5__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0_5__0_in_rule__Attr_spec__Group_0_3_0__5__Impl13573);
                    rule__Attr_spec__Group_0_3_0_5__0();
                    _fsp--;
                    if (failed) return ;

                    }
                    break;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getGroup_0_3_0_5()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0_3_0__5__Impl


    // $ANTLR start rule__Attr_spec__Group_0_3_0_3__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6534:1: rule__Attr_spec__Group_0_3_0_3__0 : rule__Attr_spec__Group_0_3_0_3__0__Impl rule__Attr_spec__Group_0_3_0_3__1 ;
    public final void rule__Attr_spec__Group_0_3_0_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6538:1: ( rule__Attr_spec__Group_0_3_0_3__0__Impl rule__Attr_spec__Group_0_3_0_3__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6539:2: rule__Attr_spec__Group_0_3_0_3__0__Impl rule__Attr_spec__Group_0_3_0_3__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0_3__0__Impl_in_rule__Attr_spec__Group_0_3_0_3__013616);
            rule__Attr_spec__Group_0_3_0_3__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0_3__1_in_rule__Attr_spec__Group_0_3_0_3__013619);
            rule__Attr_spec__Group_0_3_0_3__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0_3_0_3__0


    // $ANTLR start rule__Attr_spec__Group_0_3_0_3__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6546:1: rule__Attr_spec__Group_0_3_0_3__0__Impl : ( ',' ) ;
    public final void rule__Attr_spec__Group_0_3_0_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6550:1: ( ( ',' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6551:1: ( ',' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6551:1: ( ',' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6552:1: ','
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getCommaKeyword_0_3_0_3_0()); 
            }
            match(input,49,FollowSets000.FOLLOW_49_in_rule__Attr_spec__Group_0_3_0_3__0__Impl13647); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getCommaKeyword_0_3_0_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0_3_0_3__0__Impl


    // $ANTLR start rule__Attr_spec__Group_0_3_0_3__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6565:1: rule__Attr_spec__Group_0_3_0_3__1 : rule__Attr_spec__Group_0_3_0_3__1__Impl ;
    public final void rule__Attr_spec__Group_0_3_0_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6569:1: ( rule__Attr_spec__Group_0_3_0_3__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6570:2: rule__Attr_spec__Group_0_3_0_3__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0_3__1__Impl_in_rule__Attr_spec__Group_0_3_0_3__113678);
            rule__Attr_spec__Group_0_3_0_3__1__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0_3_0_3__1


    // $ANTLR start rule__Attr_spec__Group_0_3_0_3__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6576:1: rule__Attr_spec__Group_0_3_0_3__1__Impl : ( ( rule__Attr_spec__GetRaisesAssignment_0_3_0_3_1 ) ) ;
    public final void rule__Attr_spec__Group_0_3_0_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6580:1: ( ( ( rule__Attr_spec__GetRaisesAssignment_0_3_0_3_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6581:1: ( ( rule__Attr_spec__GetRaisesAssignment_0_3_0_3_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6581:1: ( ( rule__Attr_spec__GetRaisesAssignment_0_3_0_3_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6582:1: ( rule__Attr_spec__GetRaisesAssignment_0_3_0_3_1 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getGetRaisesAssignment_0_3_0_3_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6583:1: ( rule__Attr_spec__GetRaisesAssignment_0_3_0_3_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6583:2: rule__Attr_spec__GetRaisesAssignment_0_3_0_3_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__GetRaisesAssignment_0_3_0_3_1_in_rule__Attr_spec__Group_0_3_0_3__1__Impl13705);
            rule__Attr_spec__GetRaisesAssignment_0_3_0_3_1();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getGetRaisesAssignment_0_3_0_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0_3_0_3__1__Impl


    // $ANTLR start rule__Attr_spec__Group_0_3_0_5__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6597:1: rule__Attr_spec__Group_0_3_0_5__0 : rule__Attr_spec__Group_0_3_0_5__0__Impl rule__Attr_spec__Group_0_3_0_5__1 ;
    public final void rule__Attr_spec__Group_0_3_0_5__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6601:1: ( rule__Attr_spec__Group_0_3_0_5__0__Impl rule__Attr_spec__Group_0_3_0_5__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6602:2: rule__Attr_spec__Group_0_3_0_5__0__Impl rule__Attr_spec__Group_0_3_0_5__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0_5__0__Impl_in_rule__Attr_spec__Group_0_3_0_5__013739);
            rule__Attr_spec__Group_0_3_0_5__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0_5__1_in_rule__Attr_spec__Group_0_3_0_5__013742);
            rule__Attr_spec__Group_0_3_0_5__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0_3_0_5__0


    // $ANTLR start rule__Attr_spec__Group_0_3_0_5__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6609:1: rule__Attr_spec__Group_0_3_0_5__0__Impl : ( 'setraises' ) ;
    public final void rule__Attr_spec__Group_0_3_0_5__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6613:1: ( ( 'setraises' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6614:1: ( 'setraises' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6614:1: ( 'setraises' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6615:1: 'setraises'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getSetraisesKeyword_0_3_0_5_0()); 
            }
            match(input,56,FollowSets000.FOLLOW_56_in_rule__Attr_spec__Group_0_3_0_5__0__Impl13770); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getSetraisesKeyword_0_3_0_5_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0_3_0_5__0__Impl


    // $ANTLR start rule__Attr_spec__Group_0_3_0_5__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6628:1: rule__Attr_spec__Group_0_3_0_5__1 : rule__Attr_spec__Group_0_3_0_5__1__Impl rule__Attr_spec__Group_0_3_0_5__2 ;
    public final void rule__Attr_spec__Group_0_3_0_5__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6632:1: ( rule__Attr_spec__Group_0_3_0_5__1__Impl rule__Attr_spec__Group_0_3_0_5__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6633:2: rule__Attr_spec__Group_0_3_0_5__1__Impl rule__Attr_spec__Group_0_3_0_5__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0_5__1__Impl_in_rule__Attr_spec__Group_0_3_0_5__113801);
            rule__Attr_spec__Group_0_3_0_5__1__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0_5__2_in_rule__Attr_spec__Group_0_3_0_5__113804);
            rule__Attr_spec__Group_0_3_0_5__2();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0_3_0_5__1


    // $ANTLR start rule__Attr_spec__Group_0_3_0_5__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6640:1: rule__Attr_spec__Group_0_3_0_5__1__Impl : ( '(' ) ;
    public final void rule__Attr_spec__Group_0_3_0_5__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6644:1: ( ( '(' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6645:1: ( '(' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6645:1: ( '(' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6646:1: '('
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getLeftParenthesisKeyword_0_3_0_5_1()); 
            }
            match(input,50,FollowSets000.FOLLOW_50_in_rule__Attr_spec__Group_0_3_0_5__1__Impl13832); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getLeftParenthesisKeyword_0_3_0_5_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0_3_0_5__1__Impl


    // $ANTLR start rule__Attr_spec__Group_0_3_0_5__2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6659:1: rule__Attr_spec__Group_0_3_0_5__2 : rule__Attr_spec__Group_0_3_0_5__2__Impl rule__Attr_spec__Group_0_3_0_5__3 ;
    public final void rule__Attr_spec__Group_0_3_0_5__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6663:1: ( rule__Attr_spec__Group_0_3_0_5__2__Impl rule__Attr_spec__Group_0_3_0_5__3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6664:2: rule__Attr_spec__Group_0_3_0_5__2__Impl rule__Attr_spec__Group_0_3_0_5__3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0_5__2__Impl_in_rule__Attr_spec__Group_0_3_0_5__213863);
            rule__Attr_spec__Group_0_3_0_5__2__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0_5__3_in_rule__Attr_spec__Group_0_3_0_5__213866);
            rule__Attr_spec__Group_0_3_0_5__3();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0_3_0_5__2


    // $ANTLR start rule__Attr_spec__Group_0_3_0_5__2__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6671:1: rule__Attr_spec__Group_0_3_0_5__2__Impl : ( ( rule__Attr_spec__SetRaisesAssignment_0_3_0_5_2 ) ) ;
    public final void rule__Attr_spec__Group_0_3_0_5__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6675:1: ( ( ( rule__Attr_spec__SetRaisesAssignment_0_3_0_5_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6676:1: ( ( rule__Attr_spec__SetRaisesAssignment_0_3_0_5_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6676:1: ( ( rule__Attr_spec__SetRaisesAssignment_0_3_0_5_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6677:1: ( rule__Attr_spec__SetRaisesAssignment_0_3_0_5_2 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getSetRaisesAssignment_0_3_0_5_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6678:1: ( rule__Attr_spec__SetRaisesAssignment_0_3_0_5_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6678:2: rule__Attr_spec__SetRaisesAssignment_0_3_0_5_2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__SetRaisesAssignment_0_3_0_5_2_in_rule__Attr_spec__Group_0_3_0_5__2__Impl13893);
            rule__Attr_spec__SetRaisesAssignment_0_3_0_5_2();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getSetRaisesAssignment_0_3_0_5_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0_3_0_5__2__Impl


    // $ANTLR start rule__Attr_spec__Group_0_3_0_5__3
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6688:1: rule__Attr_spec__Group_0_3_0_5__3 : rule__Attr_spec__Group_0_3_0_5__3__Impl rule__Attr_spec__Group_0_3_0_5__4 ;
    public final void rule__Attr_spec__Group_0_3_0_5__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6692:1: ( rule__Attr_spec__Group_0_3_0_5__3__Impl rule__Attr_spec__Group_0_3_0_5__4 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6693:2: rule__Attr_spec__Group_0_3_0_5__3__Impl rule__Attr_spec__Group_0_3_0_5__4
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0_5__3__Impl_in_rule__Attr_spec__Group_0_3_0_5__313923);
            rule__Attr_spec__Group_0_3_0_5__3__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0_5__4_in_rule__Attr_spec__Group_0_3_0_5__313926);
            rule__Attr_spec__Group_0_3_0_5__4();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0_3_0_5__3


    // $ANTLR start rule__Attr_spec__Group_0_3_0_5__3__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6700:1: rule__Attr_spec__Group_0_3_0_5__3__Impl : ( ( rule__Attr_spec__Group_0_3_0_5_3__0 )* ) ;
    public final void rule__Attr_spec__Group_0_3_0_5__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6704:1: ( ( ( rule__Attr_spec__Group_0_3_0_5_3__0 )* ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6705:1: ( ( rule__Attr_spec__Group_0_3_0_5_3__0 )* )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6705:1: ( ( rule__Attr_spec__Group_0_3_0_5_3__0 )* )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6706:1: ( rule__Attr_spec__Group_0_3_0_5_3__0 )*
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getGroup_0_3_0_5_3()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6707:1: ( rule__Attr_spec__Group_0_3_0_5_3__0 )*
            loop67:
            do {
                int alt67=2;
                int LA67_0 = input.LA(1);

                if ( (LA67_0==49) ) {
                    alt67=1;
                }


                switch (alt67) {
            	case 1 :
            	    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6707:2: rule__Attr_spec__Group_0_3_0_5_3__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0_5_3__0_in_rule__Attr_spec__Group_0_3_0_5__3__Impl13953);
            	    rule__Attr_spec__Group_0_3_0_5_3__0();
            	    _fsp--;
            	    if (failed) return ;

            	    }
            	    break;

            	default :
            	    break loop67;
                }
            } while (true);

            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getGroup_0_3_0_5_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0_3_0_5__3__Impl


    // $ANTLR start rule__Attr_spec__Group_0_3_0_5__4
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6717:1: rule__Attr_spec__Group_0_3_0_5__4 : rule__Attr_spec__Group_0_3_0_5__4__Impl ;
    public final void rule__Attr_spec__Group_0_3_0_5__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6721:1: ( rule__Attr_spec__Group_0_3_0_5__4__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6722:2: rule__Attr_spec__Group_0_3_0_5__4__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0_5__4__Impl_in_rule__Attr_spec__Group_0_3_0_5__413984);
            rule__Attr_spec__Group_0_3_0_5__4__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0_3_0_5__4


    // $ANTLR start rule__Attr_spec__Group_0_3_0_5__4__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6728:1: rule__Attr_spec__Group_0_3_0_5__4__Impl : ( ')' ) ;
    public final void rule__Attr_spec__Group_0_3_0_5__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6732:1: ( ( ')' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6733:1: ( ')' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6733:1: ( ')' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6734:1: ')'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getRightParenthesisKeyword_0_3_0_5_4()); 
            }
            match(input,51,FollowSets000.FOLLOW_51_in_rule__Attr_spec__Group_0_3_0_5__4__Impl14012); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getRightParenthesisKeyword_0_3_0_5_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0_3_0_5__4__Impl


    // $ANTLR start rule__Attr_spec__Group_0_3_0_5_3__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6757:1: rule__Attr_spec__Group_0_3_0_5_3__0 : rule__Attr_spec__Group_0_3_0_5_3__0__Impl rule__Attr_spec__Group_0_3_0_5_3__1 ;
    public final void rule__Attr_spec__Group_0_3_0_5_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6761:1: ( rule__Attr_spec__Group_0_3_0_5_3__0__Impl rule__Attr_spec__Group_0_3_0_5_3__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6762:2: rule__Attr_spec__Group_0_3_0_5_3__0__Impl rule__Attr_spec__Group_0_3_0_5_3__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0_5_3__0__Impl_in_rule__Attr_spec__Group_0_3_0_5_3__014053);
            rule__Attr_spec__Group_0_3_0_5_3__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0_5_3__1_in_rule__Attr_spec__Group_0_3_0_5_3__014056);
            rule__Attr_spec__Group_0_3_0_5_3__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0_3_0_5_3__0


    // $ANTLR start rule__Attr_spec__Group_0_3_0_5_3__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6769:1: rule__Attr_spec__Group_0_3_0_5_3__0__Impl : ( ',' ) ;
    public final void rule__Attr_spec__Group_0_3_0_5_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6773:1: ( ( ',' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6774:1: ( ',' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6774:1: ( ',' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6775:1: ','
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getCommaKeyword_0_3_0_5_3_0()); 
            }
            match(input,49,FollowSets000.FOLLOW_49_in_rule__Attr_spec__Group_0_3_0_5_3__0__Impl14084); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getCommaKeyword_0_3_0_5_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0_3_0_5_3__0__Impl


    // $ANTLR start rule__Attr_spec__Group_0_3_0_5_3__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6788:1: rule__Attr_spec__Group_0_3_0_5_3__1 : rule__Attr_spec__Group_0_3_0_5_3__1__Impl ;
    public final void rule__Attr_spec__Group_0_3_0_5_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6792:1: ( rule__Attr_spec__Group_0_3_0_5_3__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6793:2: rule__Attr_spec__Group_0_3_0_5_3__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_0_5_3__1__Impl_in_rule__Attr_spec__Group_0_3_0_5_3__114115);
            rule__Attr_spec__Group_0_3_0_5_3__1__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0_3_0_5_3__1


    // $ANTLR start rule__Attr_spec__Group_0_3_0_5_3__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6799:1: rule__Attr_spec__Group_0_3_0_5_3__1__Impl : ( ( rule__Attr_spec__SetRaisesAssignment_0_3_0_5_3_1 ) ) ;
    public final void rule__Attr_spec__Group_0_3_0_5_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6803:1: ( ( ( rule__Attr_spec__SetRaisesAssignment_0_3_0_5_3_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6804:1: ( ( rule__Attr_spec__SetRaisesAssignment_0_3_0_5_3_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6804:1: ( ( rule__Attr_spec__SetRaisesAssignment_0_3_0_5_3_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6805:1: ( rule__Attr_spec__SetRaisesAssignment_0_3_0_5_3_1 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getSetRaisesAssignment_0_3_0_5_3_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6806:1: ( rule__Attr_spec__SetRaisesAssignment_0_3_0_5_3_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6806:2: rule__Attr_spec__SetRaisesAssignment_0_3_0_5_3_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__SetRaisesAssignment_0_3_0_5_3_1_in_rule__Attr_spec__Group_0_3_0_5_3__1__Impl14142);
            rule__Attr_spec__SetRaisesAssignment_0_3_0_5_3_1();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getSetRaisesAssignment_0_3_0_5_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0_3_0_5_3__1__Impl


    // $ANTLR start rule__Attr_spec__Group_0_3_1__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6820:1: rule__Attr_spec__Group_0_3_1__0 : rule__Attr_spec__Group_0_3_1__0__Impl rule__Attr_spec__Group_0_3_1__1 ;
    public final void rule__Attr_spec__Group_0_3_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6824:1: ( rule__Attr_spec__Group_0_3_1__0__Impl rule__Attr_spec__Group_0_3_1__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6825:2: rule__Attr_spec__Group_0_3_1__0__Impl rule__Attr_spec__Group_0_3_1__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_1__0__Impl_in_rule__Attr_spec__Group_0_3_1__014176);
            rule__Attr_spec__Group_0_3_1__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_1__1_in_rule__Attr_spec__Group_0_3_1__014179);
            rule__Attr_spec__Group_0_3_1__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0_3_1__0


    // $ANTLR start rule__Attr_spec__Group_0_3_1__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6832:1: rule__Attr_spec__Group_0_3_1__0__Impl : ( 'setraises' ) ;
    public final void rule__Attr_spec__Group_0_3_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6836:1: ( ( 'setraises' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6837:1: ( 'setraises' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6837:1: ( 'setraises' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6838:1: 'setraises'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getSetraisesKeyword_0_3_1_0()); 
            }
            match(input,56,FollowSets000.FOLLOW_56_in_rule__Attr_spec__Group_0_3_1__0__Impl14207); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getSetraisesKeyword_0_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0_3_1__0__Impl


    // $ANTLR start rule__Attr_spec__Group_0_3_1__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6851:1: rule__Attr_spec__Group_0_3_1__1 : rule__Attr_spec__Group_0_3_1__1__Impl rule__Attr_spec__Group_0_3_1__2 ;
    public final void rule__Attr_spec__Group_0_3_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6855:1: ( rule__Attr_spec__Group_0_3_1__1__Impl rule__Attr_spec__Group_0_3_1__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6856:2: rule__Attr_spec__Group_0_3_1__1__Impl rule__Attr_spec__Group_0_3_1__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_1__1__Impl_in_rule__Attr_spec__Group_0_3_1__114238);
            rule__Attr_spec__Group_0_3_1__1__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_1__2_in_rule__Attr_spec__Group_0_3_1__114241);
            rule__Attr_spec__Group_0_3_1__2();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0_3_1__1


    // $ANTLR start rule__Attr_spec__Group_0_3_1__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6863:1: rule__Attr_spec__Group_0_3_1__1__Impl : ( '(' ) ;
    public final void rule__Attr_spec__Group_0_3_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6867:1: ( ( '(' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6868:1: ( '(' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6868:1: ( '(' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6869:1: '('
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getLeftParenthesisKeyword_0_3_1_1()); 
            }
            match(input,50,FollowSets000.FOLLOW_50_in_rule__Attr_spec__Group_0_3_1__1__Impl14269); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getLeftParenthesisKeyword_0_3_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0_3_1__1__Impl


    // $ANTLR start rule__Attr_spec__Group_0_3_1__2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6882:1: rule__Attr_spec__Group_0_3_1__2 : rule__Attr_spec__Group_0_3_1__2__Impl rule__Attr_spec__Group_0_3_1__3 ;
    public final void rule__Attr_spec__Group_0_3_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6886:1: ( rule__Attr_spec__Group_0_3_1__2__Impl rule__Attr_spec__Group_0_3_1__3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6887:2: rule__Attr_spec__Group_0_3_1__2__Impl rule__Attr_spec__Group_0_3_1__3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_1__2__Impl_in_rule__Attr_spec__Group_0_3_1__214300);
            rule__Attr_spec__Group_0_3_1__2__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_1__3_in_rule__Attr_spec__Group_0_3_1__214303);
            rule__Attr_spec__Group_0_3_1__3();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0_3_1__2


    // $ANTLR start rule__Attr_spec__Group_0_3_1__2__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6894:1: rule__Attr_spec__Group_0_3_1__2__Impl : ( ( rule__Attr_spec__SetRaisesAssignment_0_3_1_2 ) ) ;
    public final void rule__Attr_spec__Group_0_3_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6898:1: ( ( ( rule__Attr_spec__SetRaisesAssignment_0_3_1_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6899:1: ( ( rule__Attr_spec__SetRaisesAssignment_0_3_1_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6899:1: ( ( rule__Attr_spec__SetRaisesAssignment_0_3_1_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6900:1: ( rule__Attr_spec__SetRaisesAssignment_0_3_1_2 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getSetRaisesAssignment_0_3_1_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6901:1: ( rule__Attr_spec__SetRaisesAssignment_0_3_1_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6901:2: rule__Attr_spec__SetRaisesAssignment_0_3_1_2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__SetRaisesAssignment_0_3_1_2_in_rule__Attr_spec__Group_0_3_1__2__Impl14330);
            rule__Attr_spec__SetRaisesAssignment_0_3_1_2();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getSetRaisesAssignment_0_3_1_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0_3_1__2__Impl


    // $ANTLR start rule__Attr_spec__Group_0_3_1__3
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6911:1: rule__Attr_spec__Group_0_3_1__3 : rule__Attr_spec__Group_0_3_1__3__Impl rule__Attr_spec__Group_0_3_1__4 ;
    public final void rule__Attr_spec__Group_0_3_1__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6915:1: ( rule__Attr_spec__Group_0_3_1__3__Impl rule__Attr_spec__Group_0_3_1__4 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6916:2: rule__Attr_spec__Group_0_3_1__3__Impl rule__Attr_spec__Group_0_3_1__4
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_1__3__Impl_in_rule__Attr_spec__Group_0_3_1__314360);
            rule__Attr_spec__Group_0_3_1__3__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_1__4_in_rule__Attr_spec__Group_0_3_1__314363);
            rule__Attr_spec__Group_0_3_1__4();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0_3_1__3


    // $ANTLR start rule__Attr_spec__Group_0_3_1__3__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6923:1: rule__Attr_spec__Group_0_3_1__3__Impl : ( ( rule__Attr_spec__Group_0_3_1_3__0 )* ) ;
    public final void rule__Attr_spec__Group_0_3_1__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6927:1: ( ( ( rule__Attr_spec__Group_0_3_1_3__0 )* ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6928:1: ( ( rule__Attr_spec__Group_0_3_1_3__0 )* )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6928:1: ( ( rule__Attr_spec__Group_0_3_1_3__0 )* )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6929:1: ( rule__Attr_spec__Group_0_3_1_3__0 )*
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getGroup_0_3_1_3()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6930:1: ( rule__Attr_spec__Group_0_3_1_3__0 )*
            loop68:
            do {
                int alt68=2;
                int LA68_0 = input.LA(1);

                if ( (LA68_0==49) ) {
                    alt68=1;
                }


                switch (alt68) {
            	case 1 :
            	    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6930:2: rule__Attr_spec__Group_0_3_1_3__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_1_3__0_in_rule__Attr_spec__Group_0_3_1__3__Impl14390);
            	    rule__Attr_spec__Group_0_3_1_3__0();
            	    _fsp--;
            	    if (failed) return ;

            	    }
            	    break;

            	default :
            	    break loop68;
                }
            } while (true);

            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getGroup_0_3_1_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0_3_1__3__Impl


    // $ANTLR start rule__Attr_spec__Group_0_3_1__4
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6940:1: rule__Attr_spec__Group_0_3_1__4 : rule__Attr_spec__Group_0_3_1__4__Impl ;
    public final void rule__Attr_spec__Group_0_3_1__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6944:1: ( rule__Attr_spec__Group_0_3_1__4__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6945:2: rule__Attr_spec__Group_0_3_1__4__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_1__4__Impl_in_rule__Attr_spec__Group_0_3_1__414421);
            rule__Attr_spec__Group_0_3_1__4__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0_3_1__4


    // $ANTLR start rule__Attr_spec__Group_0_3_1__4__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6951:1: rule__Attr_spec__Group_0_3_1__4__Impl : ( ')' ) ;
    public final void rule__Attr_spec__Group_0_3_1__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6955:1: ( ( ')' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6956:1: ( ')' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6956:1: ( ')' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6957:1: ')'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getRightParenthesisKeyword_0_3_1_4()); 
            }
            match(input,51,FollowSets000.FOLLOW_51_in_rule__Attr_spec__Group_0_3_1__4__Impl14449); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getRightParenthesisKeyword_0_3_1_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0_3_1__4__Impl


    // $ANTLR start rule__Attr_spec__Group_0_3_1_3__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6980:1: rule__Attr_spec__Group_0_3_1_3__0 : rule__Attr_spec__Group_0_3_1_3__0__Impl rule__Attr_spec__Group_0_3_1_3__1 ;
    public final void rule__Attr_spec__Group_0_3_1_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6984:1: ( rule__Attr_spec__Group_0_3_1_3__0__Impl rule__Attr_spec__Group_0_3_1_3__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6985:2: rule__Attr_spec__Group_0_3_1_3__0__Impl rule__Attr_spec__Group_0_3_1_3__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_1_3__0__Impl_in_rule__Attr_spec__Group_0_3_1_3__014490);
            rule__Attr_spec__Group_0_3_1_3__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_1_3__1_in_rule__Attr_spec__Group_0_3_1_3__014493);
            rule__Attr_spec__Group_0_3_1_3__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0_3_1_3__0


    // $ANTLR start rule__Attr_spec__Group_0_3_1_3__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6992:1: rule__Attr_spec__Group_0_3_1_3__0__Impl : ( ',' ) ;
    public final void rule__Attr_spec__Group_0_3_1_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6996:1: ( ( ',' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6997:1: ( ',' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6997:1: ( ',' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:6998:1: ','
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getCommaKeyword_0_3_1_3_0()); 
            }
            match(input,49,FollowSets000.FOLLOW_49_in_rule__Attr_spec__Group_0_3_1_3__0__Impl14521); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getCommaKeyword_0_3_1_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0_3_1_3__0__Impl


    // $ANTLR start rule__Attr_spec__Group_0_3_1_3__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7011:1: rule__Attr_spec__Group_0_3_1_3__1 : rule__Attr_spec__Group_0_3_1_3__1__Impl ;
    public final void rule__Attr_spec__Group_0_3_1_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7015:1: ( rule__Attr_spec__Group_0_3_1_3__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7016:2: rule__Attr_spec__Group_0_3_1_3__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_0_3_1_3__1__Impl_in_rule__Attr_spec__Group_0_3_1_3__114552);
            rule__Attr_spec__Group_0_3_1_3__1__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0_3_1_3__1


    // $ANTLR start rule__Attr_spec__Group_0_3_1_3__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7022:1: rule__Attr_spec__Group_0_3_1_3__1__Impl : ( ( rule__Attr_spec__SetRaisesAssignment_0_3_1_3_1 ) ) ;
    public final void rule__Attr_spec__Group_0_3_1_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7026:1: ( ( ( rule__Attr_spec__SetRaisesAssignment_0_3_1_3_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7027:1: ( ( rule__Attr_spec__SetRaisesAssignment_0_3_1_3_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7027:1: ( ( rule__Attr_spec__SetRaisesAssignment_0_3_1_3_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7028:1: ( rule__Attr_spec__SetRaisesAssignment_0_3_1_3_1 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getSetRaisesAssignment_0_3_1_3_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7029:1: ( rule__Attr_spec__SetRaisesAssignment_0_3_1_3_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7029:2: rule__Attr_spec__SetRaisesAssignment_0_3_1_3_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__SetRaisesAssignment_0_3_1_3_1_in_rule__Attr_spec__Group_0_3_1_3__1__Impl14579);
            rule__Attr_spec__SetRaisesAssignment_0_3_1_3_1();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getSetRaisesAssignment_0_3_1_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_0_3_1_3__1__Impl


    // $ANTLR start rule__Attr_spec__Group_1__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7043:1: rule__Attr_spec__Group_1__0 : rule__Attr_spec__Group_1__0__Impl rule__Attr_spec__Group_1__1 ;
    public final void rule__Attr_spec__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7047:1: ( rule__Attr_spec__Group_1__0__Impl rule__Attr_spec__Group_1__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7048:2: rule__Attr_spec__Group_1__0__Impl rule__Attr_spec__Group_1__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_1__0__Impl_in_rule__Attr_spec__Group_1__014613);
            rule__Attr_spec__Group_1__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_1__1_in_rule__Attr_spec__Group_1__014616);
            rule__Attr_spec__Group_1__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_1__0


    // $ANTLR start rule__Attr_spec__Group_1__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7055:1: rule__Attr_spec__Group_1__0__Impl : ( 'attribute' ) ;
    public final void rule__Attr_spec__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7059:1: ( ( 'attribute' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7060:1: ( 'attribute' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7060:1: ( 'attribute' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7061:1: 'attribute'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getAttributeKeyword_1_0()); 
            }
            match(input,54,FollowSets000.FOLLOW_54_in_rule__Attr_spec__Group_1__0__Impl14644); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getAttributeKeyword_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_1__0__Impl


    // $ANTLR start rule__Attr_spec__Group_1__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7074:1: rule__Attr_spec__Group_1__1 : rule__Attr_spec__Group_1__1__Impl rule__Attr_spec__Group_1__2 ;
    public final void rule__Attr_spec__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7078:1: ( rule__Attr_spec__Group_1__1__Impl rule__Attr_spec__Group_1__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7079:2: rule__Attr_spec__Group_1__1__Impl rule__Attr_spec__Group_1__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_1__1__Impl_in_rule__Attr_spec__Group_1__114675);
            rule__Attr_spec__Group_1__1__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_1__2_in_rule__Attr_spec__Group_1__114678);
            rule__Attr_spec__Group_1__2();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_1__1


    // $ANTLR start rule__Attr_spec__Group_1__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7086:1: rule__Attr_spec__Group_1__1__Impl : ( ( rule__Attr_spec__Alternatives_1_1 ) ) ;
    public final void rule__Attr_spec__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7090:1: ( ( ( rule__Attr_spec__Alternatives_1_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7091:1: ( ( rule__Attr_spec__Alternatives_1_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7091:1: ( ( rule__Attr_spec__Alternatives_1_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7092:1: ( rule__Attr_spec__Alternatives_1_1 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getAlternatives_1_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7093:1: ( rule__Attr_spec__Alternatives_1_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7093:2: rule__Attr_spec__Alternatives_1_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Alternatives_1_1_in_rule__Attr_spec__Group_1__1__Impl14705);
            rule__Attr_spec__Alternatives_1_1();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getAlternatives_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_1__1__Impl


    // $ANTLR start rule__Attr_spec__Group_1__2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7103:1: rule__Attr_spec__Group_1__2 : rule__Attr_spec__Group_1__2__Impl ;
    public final void rule__Attr_spec__Group_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7107:1: ( rule__Attr_spec__Group_1__2__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7108:2: rule__Attr_spec__Group_1__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__Group_1__2__Impl_in_rule__Attr_spec__Group_1__214735);
            rule__Attr_spec__Group_1__2__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_1__2


    // $ANTLR start rule__Attr_spec__Group_1__2__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7114:1: rule__Attr_spec__Group_1__2__Impl : ( ( rule__Attr_spec__IdentifierAssignment_1_2 ) ) ;
    public final void rule__Attr_spec__Group_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7118:1: ( ( ( rule__Attr_spec__IdentifierAssignment_1_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7119:1: ( ( rule__Attr_spec__IdentifierAssignment_1_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7119:1: ( ( rule__Attr_spec__IdentifierAssignment_1_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7120:1: ( rule__Attr_spec__IdentifierAssignment_1_2 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getIdentifierAssignment_1_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7121:1: ( rule__Attr_spec__IdentifierAssignment_1_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7121:2: rule__Attr_spec__IdentifierAssignment_1_2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Attr_spec__IdentifierAssignment_1_2_in_rule__Attr_spec__Group_1__2__Impl14762);
            rule__Attr_spec__IdentifierAssignment_1_2();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getIdentifierAssignment_1_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__Group_1__2__Impl


    // $ANTLR start rule__Except_decl__Group__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7137:1: rule__Except_decl__Group__0 : rule__Except_decl__Group__0__Impl rule__Except_decl__Group__1 ;
    public final void rule__Except_decl__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7141:1: ( rule__Except_decl__Group__0__Impl rule__Except_decl__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7142:2: rule__Except_decl__Group__0__Impl rule__Except_decl__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Except_decl__Group__0__Impl_in_rule__Except_decl__Group__014798);
            rule__Except_decl__Group__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Except_decl__Group__1_in_rule__Except_decl__Group__014801);
            rule__Except_decl__Group__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Except_decl__Group__0


    // $ANTLR start rule__Except_decl__Group__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7149:1: rule__Except_decl__Group__0__Impl : ( 'exception' ) ;
    public final void rule__Except_decl__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7153:1: ( ( 'exception' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7154:1: ( 'exception' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7154:1: ( 'exception' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7155:1: 'exception'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getExcept_declAccess().getExceptionKeyword_0()); 
            }
            match(input,57,FollowSets000.FOLLOW_57_in_rule__Except_decl__Group__0__Impl14829); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getExcept_declAccess().getExceptionKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Except_decl__Group__0__Impl


    // $ANTLR start rule__Except_decl__Group__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7168:1: rule__Except_decl__Group__1 : rule__Except_decl__Group__1__Impl rule__Except_decl__Group__2 ;
    public final void rule__Except_decl__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7172:1: ( rule__Except_decl__Group__1__Impl rule__Except_decl__Group__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7173:2: rule__Except_decl__Group__1__Impl rule__Except_decl__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Except_decl__Group__1__Impl_in_rule__Except_decl__Group__114860);
            rule__Except_decl__Group__1__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Except_decl__Group__2_in_rule__Except_decl__Group__114863);
            rule__Except_decl__Group__2();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Except_decl__Group__1


    // $ANTLR start rule__Except_decl__Group__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7180:1: rule__Except_decl__Group__1__Impl : ( ( rule__Except_decl__IdentifierAssignment_1 ) ) ;
    public final void rule__Except_decl__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7184:1: ( ( ( rule__Except_decl__IdentifierAssignment_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7185:1: ( ( rule__Except_decl__IdentifierAssignment_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7185:1: ( ( rule__Except_decl__IdentifierAssignment_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7186:1: ( rule__Except_decl__IdentifierAssignment_1 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getExcept_declAccess().getIdentifierAssignment_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7187:1: ( rule__Except_decl__IdentifierAssignment_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7187:2: rule__Except_decl__IdentifierAssignment_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Except_decl__IdentifierAssignment_1_in_rule__Except_decl__Group__1__Impl14890);
            rule__Except_decl__IdentifierAssignment_1();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getExcept_declAccess().getIdentifierAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Except_decl__Group__1__Impl


    // $ANTLR start rule__Except_decl__Group__2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7197:1: rule__Except_decl__Group__2 : rule__Except_decl__Group__2__Impl rule__Except_decl__Group__3 ;
    public final void rule__Except_decl__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7201:1: ( rule__Except_decl__Group__2__Impl rule__Except_decl__Group__3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7202:2: rule__Except_decl__Group__2__Impl rule__Except_decl__Group__3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Except_decl__Group__2__Impl_in_rule__Except_decl__Group__214920);
            rule__Except_decl__Group__2__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Except_decl__Group__3_in_rule__Except_decl__Group__214923);
            rule__Except_decl__Group__3();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Except_decl__Group__2


    // $ANTLR start rule__Except_decl__Group__2__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7209:1: rule__Except_decl__Group__2__Impl : ( '{' ) ;
    public final void rule__Except_decl__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7213:1: ( ( '{' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7214:1: ( '{' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7214:1: ( '{' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7215:1: '{'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getExcept_declAccess().getLeftCurlyBracketKeyword_2()); 
            }
            match(input,45,FollowSets000.FOLLOW_45_in_rule__Except_decl__Group__2__Impl14951); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getExcept_declAccess().getLeftCurlyBracketKeyword_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Except_decl__Group__2__Impl


    // $ANTLR start rule__Except_decl__Group__3
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7228:1: rule__Except_decl__Group__3 : rule__Except_decl__Group__3__Impl rule__Except_decl__Group__4 ;
    public final void rule__Except_decl__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7232:1: ( rule__Except_decl__Group__3__Impl rule__Except_decl__Group__4 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7233:2: rule__Except_decl__Group__3__Impl rule__Except_decl__Group__4
            {
            pushFollow(FollowSets000.FOLLOW_rule__Except_decl__Group__3__Impl_in_rule__Except_decl__Group__314982);
            rule__Except_decl__Group__3__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Except_decl__Group__4_in_rule__Except_decl__Group__314985);
            rule__Except_decl__Group__4();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Except_decl__Group__3


    // $ANTLR start rule__Except_decl__Group__3__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7240:1: rule__Except_decl__Group__3__Impl : ( ( rule__Except_decl__MembersAssignment_3 )* ) ;
    public final void rule__Except_decl__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7244:1: ( ( ( rule__Except_decl__MembersAssignment_3 )* ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7245:1: ( ( rule__Except_decl__MembersAssignment_3 )* )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7245:1: ( ( rule__Except_decl__MembersAssignment_3 )* )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7246:1: ( rule__Except_decl__MembersAssignment_3 )*
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getExcept_declAccess().getMembersAssignment_3()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7247:1: ( rule__Except_decl__MembersAssignment_3 )*
            loop69:
            do {
                int alt69=2;
                int LA69_0 = input.LA(1);

                if ( (LA69_0==RULE_ID||(LA69_0>=16 && LA69_0<=27)||LA69_0==62||LA69_0==70||(LA69_0>=73 && LA69_0<=74)) ) {
                    alt69=1;
                }


                switch (alt69) {
            	case 1 :
            	    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7247:2: rule__Except_decl__MembersAssignment_3
            	    {
            	    pushFollow(FollowSets000.FOLLOW_rule__Except_decl__MembersAssignment_3_in_rule__Except_decl__Group__3__Impl15012);
            	    rule__Except_decl__MembersAssignment_3();
            	    _fsp--;
            	    if (failed) return ;

            	    }
            	    break;

            	default :
            	    break loop69;
                }
            } while (true);

            if ( backtracking==0 ) {
               after(grammarAccess.getExcept_declAccess().getMembersAssignment_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Except_decl__Group__3__Impl


    // $ANTLR start rule__Except_decl__Group__4
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7257:1: rule__Except_decl__Group__4 : rule__Except_decl__Group__4__Impl ;
    public final void rule__Except_decl__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7261:1: ( rule__Except_decl__Group__4__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7262:2: rule__Except_decl__Group__4__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Except_decl__Group__4__Impl_in_rule__Except_decl__Group__415043);
            rule__Except_decl__Group__4__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Except_decl__Group__4


    // $ANTLR start rule__Except_decl__Group__4__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7268:1: rule__Except_decl__Group__4__Impl : ( '}' ) ;
    public final void rule__Except_decl__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7272:1: ( ( '}' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7273:1: ( '}' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7273:1: ( '}' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7274:1: '}'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getExcept_declAccess().getRightCurlyBracketKeyword_4()); 
            }
            match(input,46,FollowSets000.FOLLOW_46_in_rule__Except_decl__Group__4__Impl15071); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getExcept_declAccess().getRightCurlyBracketKeyword_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Except_decl__Group__4__Impl


    // $ANTLR start rule__Type_decl__Group_4__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7297:1: rule__Type_decl__Group_4__0 : rule__Type_decl__Group_4__0__Impl rule__Type_decl__Group_4__1 ;
    public final void rule__Type_decl__Group_4__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7301:1: ( rule__Type_decl__Group_4__0__Impl rule__Type_decl__Group_4__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7302:2: rule__Type_decl__Group_4__0__Impl rule__Type_decl__Group_4__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Type_decl__Group_4__0__Impl_in_rule__Type_decl__Group_4__015112);
            rule__Type_decl__Group_4__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Type_decl__Group_4__1_in_rule__Type_decl__Group_4__015115);
            rule__Type_decl__Group_4__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Type_decl__Group_4__0


    // $ANTLR start rule__Type_decl__Group_4__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7309:1: rule__Type_decl__Group_4__0__Impl : ( 'native' ) ;
    public final void rule__Type_decl__Group_4__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7313:1: ( ( 'native' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7314:1: ( 'native' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7314:1: ( 'native' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7315:1: 'native'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getType_declAccess().getNativeKeyword_4_0()); 
            }
            match(input,58,FollowSets000.FOLLOW_58_in_rule__Type_decl__Group_4__0__Impl15143); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getType_declAccess().getNativeKeyword_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Type_decl__Group_4__0__Impl


    // $ANTLR start rule__Type_decl__Group_4__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7328:1: rule__Type_decl__Group_4__1 : rule__Type_decl__Group_4__1__Impl ;
    public final void rule__Type_decl__Group_4__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7332:1: ( rule__Type_decl__Group_4__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7333:2: rule__Type_decl__Group_4__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Type_decl__Group_4__1__Impl_in_rule__Type_decl__Group_4__115174);
            rule__Type_decl__Group_4__1__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Type_decl__Group_4__1


    // $ANTLR start rule__Type_decl__Group_4__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7339:1: rule__Type_decl__Group_4__1__Impl : ( RULE_ID ) ;
    public final void rule__Type_decl__Group_4__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7343:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7344:1: ( RULE_ID )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7344:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7345:1: RULE_ID
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getType_declAccess().getIDTerminalRuleCall_4_1()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Type_decl__Group_4__1__Impl15201); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getType_declAccess().getIDTerminalRuleCall_4_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Type_decl__Group_4__1__Impl


    // $ANTLR start rule__Alias_type__Group_0__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7360:1: rule__Alias_type__Group_0__0 : rule__Alias_type__Group_0__0__Impl rule__Alias_type__Group_0__1 ;
    public final void rule__Alias_type__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7364:1: ( rule__Alias_type__Group_0__0__Impl rule__Alias_type__Group_0__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7365:2: rule__Alias_type__Group_0__0__Impl rule__Alias_type__Group_0__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Alias_type__Group_0__0__Impl_in_rule__Alias_type__Group_0__015234);
            rule__Alias_type__Group_0__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Alias_type__Group_0__1_in_rule__Alias_type__Group_0__015237);
            rule__Alias_type__Group_0__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Alias_type__Group_0__0


    // $ANTLR start rule__Alias_type__Group_0__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7372:1: rule__Alias_type__Group_0__0__Impl : ( 'typedef' ) ;
    public final void rule__Alias_type__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7376:1: ( ( 'typedef' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7377:1: ( 'typedef' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7377:1: ( 'typedef' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7378:1: 'typedef'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAlias_typeAccess().getTypedefKeyword_0_0()); 
            }
            match(input,59,FollowSets000.FOLLOW_59_in_rule__Alias_type__Group_0__0__Impl15265); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getAlias_typeAccess().getTypedefKeyword_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Alias_type__Group_0__0__Impl


    // $ANTLR start rule__Alias_type__Group_0__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7391:1: rule__Alias_type__Group_0__1 : rule__Alias_type__Group_0__1__Impl ;
    public final void rule__Alias_type__Group_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7395:1: ( rule__Alias_type__Group_0__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7396:2: rule__Alias_type__Group_0__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Alias_type__Group_0__1__Impl_in_rule__Alias_type__Group_0__115296);
            rule__Alias_type__Group_0__1__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Alias_type__Group_0__1


    // $ANTLR start rule__Alias_type__Group_0__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7402:1: rule__Alias_type__Group_0__1__Impl : ( ( rule__Alias_type__ContainedTypeAssignment_0_1 ) ) ;
    public final void rule__Alias_type__Group_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7406:1: ( ( ( rule__Alias_type__ContainedTypeAssignment_0_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7407:1: ( ( rule__Alias_type__ContainedTypeAssignment_0_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7407:1: ( ( rule__Alias_type__ContainedTypeAssignment_0_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7408:1: ( rule__Alias_type__ContainedTypeAssignment_0_1 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAlias_typeAccess().getContainedTypeAssignment_0_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7409:1: ( rule__Alias_type__ContainedTypeAssignment_0_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7409:2: rule__Alias_type__ContainedTypeAssignment_0_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Alias_type__ContainedTypeAssignment_0_1_in_rule__Alias_type__Group_0__1__Impl15323);
            rule__Alias_type__ContainedTypeAssignment_0_1();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getAlias_typeAccess().getContainedTypeAssignment_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Alias_type__Group_0__1__Impl


    // $ANTLR start rule__Alias_type__Group_1__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7423:1: rule__Alias_type__Group_1__0 : rule__Alias_type__Group_1__0__Impl rule__Alias_type__Group_1__1 ;
    public final void rule__Alias_type__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7427:1: ( rule__Alias_type__Group_1__0__Impl rule__Alias_type__Group_1__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7428:2: rule__Alias_type__Group_1__0__Impl rule__Alias_type__Group_1__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Alias_type__Group_1__0__Impl_in_rule__Alias_type__Group_1__015357);
            rule__Alias_type__Group_1__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Alias_type__Group_1__1_in_rule__Alias_type__Group_1__015360);
            rule__Alias_type__Group_1__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Alias_type__Group_1__0


    // $ANTLR start rule__Alias_type__Group_1__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7435:1: rule__Alias_type__Group_1__0__Impl : ( 'typedef' ) ;
    public final void rule__Alias_type__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7439:1: ( ( 'typedef' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7440:1: ( 'typedef' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7440:1: ( 'typedef' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7441:1: 'typedef'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAlias_typeAccess().getTypedefKeyword_1_0()); 
            }
            match(input,59,FollowSets000.FOLLOW_59_in_rule__Alias_type__Group_1__0__Impl15388); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getAlias_typeAccess().getTypedefKeyword_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Alias_type__Group_1__0__Impl


    // $ANTLR start rule__Alias_type__Group_1__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7454:1: rule__Alias_type__Group_1__1 : rule__Alias_type__Group_1__1__Impl rule__Alias_type__Group_1__2 ;
    public final void rule__Alias_type__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7458:1: ( rule__Alias_type__Group_1__1__Impl rule__Alias_type__Group_1__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7459:2: rule__Alias_type__Group_1__1__Impl rule__Alias_type__Group_1__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Alias_type__Group_1__1__Impl_in_rule__Alias_type__Group_1__115419);
            rule__Alias_type__Group_1__1__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Alias_type__Group_1__2_in_rule__Alias_type__Group_1__115422);
            rule__Alias_type__Group_1__2();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Alias_type__Group_1__1


    // $ANTLR start rule__Alias_type__Group_1__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7466:1: rule__Alias_type__Group_1__1__Impl : ( ( rule__Alias_type__Alternatives_1_1 ) ) ;
    public final void rule__Alias_type__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7470:1: ( ( ( rule__Alias_type__Alternatives_1_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7471:1: ( ( rule__Alias_type__Alternatives_1_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7471:1: ( ( rule__Alias_type__Alternatives_1_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7472:1: ( rule__Alias_type__Alternatives_1_1 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAlias_typeAccess().getAlternatives_1_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7473:1: ( rule__Alias_type__Alternatives_1_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7473:2: rule__Alias_type__Alternatives_1_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Alias_type__Alternatives_1_1_in_rule__Alias_type__Group_1__1__Impl15449);
            rule__Alias_type__Alternatives_1_1();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getAlias_typeAccess().getAlternatives_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Alias_type__Group_1__1__Impl


    // $ANTLR start rule__Alias_type__Group_1__2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7483:1: rule__Alias_type__Group_1__2 : rule__Alias_type__Group_1__2__Impl ;
    public final void rule__Alias_type__Group_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7487:1: ( rule__Alias_type__Group_1__2__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7488:2: rule__Alias_type__Group_1__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Alias_type__Group_1__2__Impl_in_rule__Alias_type__Group_1__215479);
            rule__Alias_type__Group_1__2__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Alias_type__Group_1__2


    // $ANTLR start rule__Alias_type__Group_1__2__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7494:1: rule__Alias_type__Group_1__2__Impl : ( ( rule__Alias_type__IdentifierAssignment_1_2 ) ) ;
    public final void rule__Alias_type__Group_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7498:1: ( ( ( rule__Alias_type__IdentifierAssignment_1_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7499:1: ( ( rule__Alias_type__IdentifierAssignment_1_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7499:1: ( ( rule__Alias_type__IdentifierAssignment_1_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7500:1: ( rule__Alias_type__IdentifierAssignment_1_2 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAlias_typeAccess().getIdentifierAssignment_1_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7501:1: ( rule__Alias_type__IdentifierAssignment_1_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7501:2: rule__Alias_type__IdentifierAssignment_1_2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Alias_type__IdentifierAssignment_1_2_in_rule__Alias_type__Group_1__2__Impl15506);
            rule__Alias_type__IdentifierAssignment_1_2();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getAlias_typeAccess().getIdentifierAssignment_1_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Alias_type__Group_1__2__Impl


    // $ANTLR start rule__Array_type_spec__Group__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7517:1: rule__Array_type_spec__Group__0 : rule__Array_type_spec__Group__0__Impl rule__Array_type_spec__Group__1 ;
    public final void rule__Array_type_spec__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7521:1: ( rule__Array_type_spec__Group__0__Impl rule__Array_type_spec__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7522:2: rule__Array_type_spec__Group__0__Impl rule__Array_type_spec__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Array_type_spec__Group__0__Impl_in_rule__Array_type_spec__Group__015542);
            rule__Array_type_spec__Group__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Array_type_spec__Group__1_in_rule__Array_type_spec__Group__015545);
            rule__Array_type_spec__Group__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Array_type_spec__Group__0


    // $ANTLR start rule__Array_type_spec__Group__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7529:1: rule__Array_type_spec__Group__0__Impl : ( ( rule__Array_type_spec__Alternatives_0 ) ) ;
    public final void rule__Array_type_spec__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7533:1: ( ( ( rule__Array_type_spec__Alternatives_0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7534:1: ( ( rule__Array_type_spec__Alternatives_0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7534:1: ( ( rule__Array_type_spec__Alternatives_0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7535:1: ( rule__Array_type_spec__Alternatives_0 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getArray_type_specAccess().getAlternatives_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7536:1: ( rule__Array_type_spec__Alternatives_0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7536:2: rule__Array_type_spec__Alternatives_0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Array_type_spec__Alternatives_0_in_rule__Array_type_spec__Group__0__Impl15572);
            rule__Array_type_spec__Alternatives_0();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getArray_type_specAccess().getAlternatives_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Array_type_spec__Group__0__Impl


    // $ANTLR start rule__Array_type_spec__Group__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7546:1: rule__Array_type_spec__Group__1 : rule__Array_type_spec__Group__1__Impl rule__Array_type_spec__Group__2 ;
    public final void rule__Array_type_spec__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7550:1: ( rule__Array_type_spec__Group__1__Impl rule__Array_type_spec__Group__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7551:2: rule__Array_type_spec__Group__1__Impl rule__Array_type_spec__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Array_type_spec__Group__1__Impl_in_rule__Array_type_spec__Group__115602);
            rule__Array_type_spec__Group__1__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Array_type_spec__Group__2_in_rule__Array_type_spec__Group__115605);
            rule__Array_type_spec__Group__2();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Array_type_spec__Group__1


    // $ANTLR start rule__Array_type_spec__Group__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7558:1: rule__Array_type_spec__Group__1__Impl : ( ( rule__Array_type_spec__NameAssignment_1 ) ) ;
    public final void rule__Array_type_spec__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7562:1: ( ( ( rule__Array_type_spec__NameAssignment_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7563:1: ( ( rule__Array_type_spec__NameAssignment_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7563:1: ( ( rule__Array_type_spec__NameAssignment_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7564:1: ( rule__Array_type_spec__NameAssignment_1 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getArray_type_specAccess().getNameAssignment_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7565:1: ( rule__Array_type_spec__NameAssignment_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7565:2: rule__Array_type_spec__NameAssignment_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Array_type_spec__NameAssignment_1_in_rule__Array_type_spec__Group__1__Impl15632);
            rule__Array_type_spec__NameAssignment_1();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getArray_type_specAccess().getNameAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Array_type_spec__Group__1__Impl


    // $ANTLR start rule__Array_type_spec__Group__2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7575:1: rule__Array_type_spec__Group__2 : rule__Array_type_spec__Group__2__Impl ;
    public final void rule__Array_type_spec__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7579:1: ( rule__Array_type_spec__Group__2__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7580:2: rule__Array_type_spec__Group__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Array_type_spec__Group__2__Impl_in_rule__Array_type_spec__Group__215662);
            rule__Array_type_spec__Group__2__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Array_type_spec__Group__2


    // $ANTLR start rule__Array_type_spec__Group__2__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7586:1: rule__Array_type_spec__Group__2__Impl : ( ( ( rule__Array_type_spec__Group_2__0 ) ) ( ( rule__Array_type_spec__Group_2__0 )* ) ) ;
    public final void rule__Array_type_spec__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7590:1: ( ( ( ( rule__Array_type_spec__Group_2__0 ) ) ( ( rule__Array_type_spec__Group_2__0 )* ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7591:1: ( ( ( rule__Array_type_spec__Group_2__0 ) ) ( ( rule__Array_type_spec__Group_2__0 )* ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7591:1: ( ( ( rule__Array_type_spec__Group_2__0 ) ) ( ( rule__Array_type_spec__Group_2__0 )* ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7592:1: ( ( rule__Array_type_spec__Group_2__0 ) ) ( ( rule__Array_type_spec__Group_2__0 )* )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7592:1: ( ( rule__Array_type_spec__Group_2__0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7593:1: ( rule__Array_type_spec__Group_2__0 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getArray_type_specAccess().getGroup_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7594:1: ( rule__Array_type_spec__Group_2__0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7594:2: rule__Array_type_spec__Group_2__0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Array_type_spec__Group_2__0_in_rule__Array_type_spec__Group__2__Impl15691);
            rule__Array_type_spec__Group_2__0();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getArray_type_specAccess().getGroup_2()); 
            }

            }

            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7597:1: ( ( rule__Array_type_spec__Group_2__0 )* )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7598:1: ( rule__Array_type_spec__Group_2__0 )*
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getArray_type_specAccess().getGroup_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7599:1: ( rule__Array_type_spec__Group_2__0 )*
            loop70:
            do {
                int alt70=2;
                int LA70_0 = input.LA(1);

                if ( (LA70_0==60) ) {
                    alt70=1;
                }


                switch (alt70) {
            	case 1 :
            	    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7599:2: rule__Array_type_spec__Group_2__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_rule__Array_type_spec__Group_2__0_in_rule__Array_type_spec__Group__2__Impl15703);
            	    rule__Array_type_spec__Group_2__0();
            	    _fsp--;
            	    if (failed) return ;

            	    }
            	    break;

            	default :
            	    break loop70;
                }
            } while (true);

            if ( backtracking==0 ) {
               after(grammarAccess.getArray_type_specAccess().getGroup_2()); 
            }

            }


            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Array_type_spec__Group__2__Impl


    // $ANTLR start rule__Array_type_spec__Group_2__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7616:1: rule__Array_type_spec__Group_2__0 : rule__Array_type_spec__Group_2__0__Impl rule__Array_type_spec__Group_2__1 ;
    public final void rule__Array_type_spec__Group_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7620:1: ( rule__Array_type_spec__Group_2__0__Impl rule__Array_type_spec__Group_2__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7621:2: rule__Array_type_spec__Group_2__0__Impl rule__Array_type_spec__Group_2__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Array_type_spec__Group_2__0__Impl_in_rule__Array_type_spec__Group_2__015742);
            rule__Array_type_spec__Group_2__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Array_type_spec__Group_2__1_in_rule__Array_type_spec__Group_2__015745);
            rule__Array_type_spec__Group_2__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Array_type_spec__Group_2__0


    // $ANTLR start rule__Array_type_spec__Group_2__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7628:1: rule__Array_type_spec__Group_2__0__Impl : ( '[' ) ;
    public final void rule__Array_type_spec__Group_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7632:1: ( ( '[' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7633:1: ( '[' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7633:1: ( '[' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7634:1: '['
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getArray_type_specAccess().getLeftSquareBracketKeyword_2_0()); 
            }
            match(input,60,FollowSets000.FOLLOW_60_in_rule__Array_type_spec__Group_2__0__Impl15773); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getArray_type_specAccess().getLeftSquareBracketKeyword_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Array_type_spec__Group_2__0__Impl


    // $ANTLR start rule__Array_type_spec__Group_2__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7647:1: rule__Array_type_spec__Group_2__1 : rule__Array_type_spec__Group_2__1__Impl rule__Array_type_spec__Group_2__2 ;
    public final void rule__Array_type_spec__Group_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7651:1: ( rule__Array_type_spec__Group_2__1__Impl rule__Array_type_spec__Group_2__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7652:2: rule__Array_type_spec__Group_2__1__Impl rule__Array_type_spec__Group_2__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Array_type_spec__Group_2__1__Impl_in_rule__Array_type_spec__Group_2__115804);
            rule__Array_type_spec__Group_2__1__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Array_type_spec__Group_2__2_in_rule__Array_type_spec__Group_2__115807);
            rule__Array_type_spec__Group_2__2();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Array_type_spec__Group_2__1


    // $ANTLR start rule__Array_type_spec__Group_2__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7659:1: rule__Array_type_spec__Group_2__1__Impl : ( ( rule__Array_type_spec__BoundsAssignment_2_1 ) ) ;
    public final void rule__Array_type_spec__Group_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7663:1: ( ( ( rule__Array_type_spec__BoundsAssignment_2_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7664:1: ( ( rule__Array_type_spec__BoundsAssignment_2_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7664:1: ( ( rule__Array_type_spec__BoundsAssignment_2_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7665:1: ( rule__Array_type_spec__BoundsAssignment_2_1 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getArray_type_specAccess().getBoundsAssignment_2_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7666:1: ( rule__Array_type_spec__BoundsAssignment_2_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7666:2: rule__Array_type_spec__BoundsAssignment_2_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Array_type_spec__BoundsAssignment_2_1_in_rule__Array_type_spec__Group_2__1__Impl15834);
            rule__Array_type_spec__BoundsAssignment_2_1();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getArray_type_specAccess().getBoundsAssignment_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Array_type_spec__Group_2__1__Impl


    // $ANTLR start rule__Array_type_spec__Group_2__2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7676:1: rule__Array_type_spec__Group_2__2 : rule__Array_type_spec__Group_2__2__Impl ;
    public final void rule__Array_type_spec__Group_2__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7680:1: ( rule__Array_type_spec__Group_2__2__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7681:2: rule__Array_type_spec__Group_2__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Array_type_spec__Group_2__2__Impl_in_rule__Array_type_spec__Group_2__215864);
            rule__Array_type_spec__Group_2__2__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Array_type_spec__Group_2__2


    // $ANTLR start rule__Array_type_spec__Group_2__2__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7687:1: rule__Array_type_spec__Group_2__2__Impl : ( ']' ) ;
    public final void rule__Array_type_spec__Group_2__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7691:1: ( ( ']' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7692:1: ( ']' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7692:1: ( ']' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7693:1: ']'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getArray_type_specAccess().getRightSquareBracketKeyword_2_2()); 
            }
            match(input,61,FollowSets000.FOLLOW_61_in_rule__Array_type_spec__Group_2__2__Impl15892); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getArray_type_specAccess().getRightSquareBracketKeyword_2_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Array_type_spec__Group_2__2__Impl


    // $ANTLR start rule__Struct_type__Group__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7712:1: rule__Struct_type__Group__0 : rule__Struct_type__Group__0__Impl rule__Struct_type__Group__1 ;
    public final void rule__Struct_type__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7716:1: ( rule__Struct_type__Group__0__Impl rule__Struct_type__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7717:2: rule__Struct_type__Group__0__Impl rule__Struct_type__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Struct_type__Group__0__Impl_in_rule__Struct_type__Group__015929);
            rule__Struct_type__Group__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Struct_type__Group__1_in_rule__Struct_type__Group__015932);
            rule__Struct_type__Group__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Struct_type__Group__0


    // $ANTLR start rule__Struct_type__Group__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7724:1: rule__Struct_type__Group__0__Impl : ( 'struct' ) ;
    public final void rule__Struct_type__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7728:1: ( ( 'struct' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7729:1: ( 'struct' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7729:1: ( 'struct' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7730:1: 'struct'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getStruct_typeAccess().getStructKeyword_0()); 
            }
            match(input,62,FollowSets000.FOLLOW_62_in_rule__Struct_type__Group__0__Impl15960); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getStruct_typeAccess().getStructKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Struct_type__Group__0__Impl


    // $ANTLR start rule__Struct_type__Group__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7743:1: rule__Struct_type__Group__1 : rule__Struct_type__Group__1__Impl rule__Struct_type__Group__2 ;
    public final void rule__Struct_type__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7747:1: ( rule__Struct_type__Group__1__Impl rule__Struct_type__Group__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7748:2: rule__Struct_type__Group__1__Impl rule__Struct_type__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Struct_type__Group__1__Impl_in_rule__Struct_type__Group__115991);
            rule__Struct_type__Group__1__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Struct_type__Group__2_in_rule__Struct_type__Group__115994);
            rule__Struct_type__Group__2();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Struct_type__Group__1


    // $ANTLR start rule__Struct_type__Group__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7755:1: rule__Struct_type__Group__1__Impl : ( ( rule__Struct_type__IdentifierAssignment_1 ) ) ;
    public final void rule__Struct_type__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7759:1: ( ( ( rule__Struct_type__IdentifierAssignment_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7760:1: ( ( rule__Struct_type__IdentifierAssignment_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7760:1: ( ( rule__Struct_type__IdentifierAssignment_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7761:1: ( rule__Struct_type__IdentifierAssignment_1 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getStruct_typeAccess().getIdentifierAssignment_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7762:1: ( rule__Struct_type__IdentifierAssignment_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7762:2: rule__Struct_type__IdentifierAssignment_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Struct_type__IdentifierAssignment_1_in_rule__Struct_type__Group__1__Impl16021);
            rule__Struct_type__IdentifierAssignment_1();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getStruct_typeAccess().getIdentifierAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Struct_type__Group__1__Impl


    // $ANTLR start rule__Struct_type__Group__2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7772:1: rule__Struct_type__Group__2 : rule__Struct_type__Group__2__Impl rule__Struct_type__Group__3 ;
    public final void rule__Struct_type__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7776:1: ( rule__Struct_type__Group__2__Impl rule__Struct_type__Group__3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7777:2: rule__Struct_type__Group__2__Impl rule__Struct_type__Group__3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Struct_type__Group__2__Impl_in_rule__Struct_type__Group__216051);
            rule__Struct_type__Group__2__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Struct_type__Group__3_in_rule__Struct_type__Group__216054);
            rule__Struct_type__Group__3();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Struct_type__Group__2


    // $ANTLR start rule__Struct_type__Group__2__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7784:1: rule__Struct_type__Group__2__Impl : ( '{' ) ;
    public final void rule__Struct_type__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7788:1: ( ( '{' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7789:1: ( '{' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7789:1: ( '{' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7790:1: '{'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getStruct_typeAccess().getLeftCurlyBracketKeyword_2()); 
            }
            match(input,45,FollowSets000.FOLLOW_45_in_rule__Struct_type__Group__2__Impl16082); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getStruct_typeAccess().getLeftCurlyBracketKeyword_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Struct_type__Group__2__Impl


    // $ANTLR start rule__Struct_type__Group__3
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7803:1: rule__Struct_type__Group__3 : rule__Struct_type__Group__3__Impl rule__Struct_type__Group__4 ;
    public final void rule__Struct_type__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7807:1: ( rule__Struct_type__Group__3__Impl rule__Struct_type__Group__4 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7808:2: rule__Struct_type__Group__3__Impl rule__Struct_type__Group__4
            {
            pushFollow(FollowSets000.FOLLOW_rule__Struct_type__Group__3__Impl_in_rule__Struct_type__Group__316113);
            rule__Struct_type__Group__3__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Struct_type__Group__4_in_rule__Struct_type__Group__316116);
            rule__Struct_type__Group__4();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Struct_type__Group__3


    // $ANTLR start rule__Struct_type__Group__3__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7815:1: rule__Struct_type__Group__3__Impl : ( ( ( rule__Struct_type__MembersAssignment_3 ) ) ( ( rule__Struct_type__MembersAssignment_3 )* ) ) ;
    public final void rule__Struct_type__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7819:1: ( ( ( ( rule__Struct_type__MembersAssignment_3 ) ) ( ( rule__Struct_type__MembersAssignment_3 )* ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7820:1: ( ( ( rule__Struct_type__MembersAssignment_3 ) ) ( ( rule__Struct_type__MembersAssignment_3 )* ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7820:1: ( ( ( rule__Struct_type__MembersAssignment_3 ) ) ( ( rule__Struct_type__MembersAssignment_3 )* ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7821:1: ( ( rule__Struct_type__MembersAssignment_3 ) ) ( ( rule__Struct_type__MembersAssignment_3 )* )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7821:1: ( ( rule__Struct_type__MembersAssignment_3 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7822:1: ( rule__Struct_type__MembersAssignment_3 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getStruct_typeAccess().getMembersAssignment_3()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7823:1: ( rule__Struct_type__MembersAssignment_3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7823:2: rule__Struct_type__MembersAssignment_3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Struct_type__MembersAssignment_3_in_rule__Struct_type__Group__3__Impl16145);
            rule__Struct_type__MembersAssignment_3();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getStruct_typeAccess().getMembersAssignment_3()); 
            }

            }

            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7826:1: ( ( rule__Struct_type__MembersAssignment_3 )* )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7827:1: ( rule__Struct_type__MembersAssignment_3 )*
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getStruct_typeAccess().getMembersAssignment_3()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7828:1: ( rule__Struct_type__MembersAssignment_3 )*
            loop71:
            do {
                int alt71=2;
                int LA71_0 = input.LA(1);

                if ( (LA71_0==RULE_ID||(LA71_0>=16 && LA71_0<=27)||LA71_0==62||LA71_0==70||(LA71_0>=73 && LA71_0<=74)) ) {
                    alt71=1;
                }


                switch (alt71) {
            	case 1 :
            	    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7828:2: rule__Struct_type__MembersAssignment_3
            	    {
            	    pushFollow(FollowSets000.FOLLOW_rule__Struct_type__MembersAssignment_3_in_rule__Struct_type__Group__3__Impl16157);
            	    rule__Struct_type__MembersAssignment_3();
            	    _fsp--;
            	    if (failed) return ;

            	    }
            	    break;

            	default :
            	    break loop71;
                }
            } while (true);

            if ( backtracking==0 ) {
               after(grammarAccess.getStruct_typeAccess().getMembersAssignment_3()); 
            }

            }


            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Struct_type__Group__3__Impl


    // $ANTLR start rule__Struct_type__Group__4
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7839:1: rule__Struct_type__Group__4 : rule__Struct_type__Group__4__Impl ;
    public final void rule__Struct_type__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7843:1: ( rule__Struct_type__Group__4__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7844:2: rule__Struct_type__Group__4__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Struct_type__Group__4__Impl_in_rule__Struct_type__Group__416190);
            rule__Struct_type__Group__4__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Struct_type__Group__4


    // $ANTLR start rule__Struct_type__Group__4__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7850:1: rule__Struct_type__Group__4__Impl : ( '}' ) ;
    public final void rule__Struct_type__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7854:1: ( ( '}' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7855:1: ( '}' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7855:1: ( '}' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7856:1: '}'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getStruct_typeAccess().getRightCurlyBracketKeyword_4()); 
            }
            match(input,46,FollowSets000.FOLLOW_46_in_rule__Struct_type__Group__4__Impl16218); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getStruct_typeAccess().getRightCurlyBracketKeyword_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Struct_type__Group__4__Impl


    // $ANTLR start rule__Member__Group_0__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7879:1: rule__Member__Group_0__0 : rule__Member__Group_0__0__Impl rule__Member__Group_0__1 ;
    public final void rule__Member__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7883:1: ( rule__Member__Group_0__0__Impl rule__Member__Group_0__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7884:2: rule__Member__Group_0__0__Impl rule__Member__Group_0__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Member__Group_0__0__Impl_in_rule__Member__Group_0__016259);
            rule__Member__Group_0__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Member__Group_0__1_in_rule__Member__Group_0__016262);
            rule__Member__Group_0__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Member__Group_0__0


    // $ANTLR start rule__Member__Group_0__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7891:1: rule__Member__Group_0__0__Impl : ( ( rule__Member__ContainedTypeAssignment_0_0 ) ) ;
    public final void rule__Member__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7895:1: ( ( ( rule__Member__ContainedTypeAssignment_0_0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7896:1: ( ( rule__Member__ContainedTypeAssignment_0_0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7896:1: ( ( rule__Member__ContainedTypeAssignment_0_0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7897:1: ( rule__Member__ContainedTypeAssignment_0_0 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getMemberAccess().getContainedTypeAssignment_0_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7898:1: ( rule__Member__ContainedTypeAssignment_0_0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7898:2: rule__Member__ContainedTypeAssignment_0_0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Member__ContainedTypeAssignment_0_0_in_rule__Member__Group_0__0__Impl16289);
            rule__Member__ContainedTypeAssignment_0_0();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getMemberAccess().getContainedTypeAssignment_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Member__Group_0__0__Impl


    // $ANTLR start rule__Member__Group_0__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7908:1: rule__Member__Group_0__1 : rule__Member__Group_0__1__Impl ;
    public final void rule__Member__Group_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7912:1: ( rule__Member__Group_0__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7913:2: rule__Member__Group_0__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Member__Group_0__1__Impl_in_rule__Member__Group_0__116319);
            rule__Member__Group_0__1__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Member__Group_0__1


    // $ANTLR start rule__Member__Group_0__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7919:1: rule__Member__Group_0__1__Impl : ( ';' ) ;
    public final void rule__Member__Group_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7923:1: ( ( ';' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7924:1: ( ';' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7924:1: ( ';' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7925:1: ';'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getMemberAccess().getSemicolonKeyword_0_1()); 
            }
            match(input,29,FollowSets000.FOLLOW_29_in_rule__Member__Group_0__1__Impl16347); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getMemberAccess().getSemicolonKeyword_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Member__Group_0__1__Impl


    // $ANTLR start rule__Member__Group_1__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7942:1: rule__Member__Group_1__0 : rule__Member__Group_1__0__Impl rule__Member__Group_1__1 ;
    public final void rule__Member__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7946:1: ( rule__Member__Group_1__0__Impl rule__Member__Group_1__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7947:2: rule__Member__Group_1__0__Impl rule__Member__Group_1__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Member__Group_1__0__Impl_in_rule__Member__Group_1__016382);
            rule__Member__Group_1__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Member__Group_1__1_in_rule__Member__Group_1__016385);
            rule__Member__Group_1__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Member__Group_1__0


    // $ANTLR start rule__Member__Group_1__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7954:1: rule__Member__Group_1__0__Impl : ( ( rule__Member__ContainedTypeAssignment_1_0 ) ) ;
    public final void rule__Member__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7958:1: ( ( ( rule__Member__ContainedTypeAssignment_1_0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7959:1: ( ( rule__Member__ContainedTypeAssignment_1_0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7959:1: ( ( rule__Member__ContainedTypeAssignment_1_0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7960:1: ( rule__Member__ContainedTypeAssignment_1_0 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getMemberAccess().getContainedTypeAssignment_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7961:1: ( rule__Member__ContainedTypeAssignment_1_0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7961:2: rule__Member__ContainedTypeAssignment_1_0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Member__ContainedTypeAssignment_1_0_in_rule__Member__Group_1__0__Impl16412);
            rule__Member__ContainedTypeAssignment_1_0();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getMemberAccess().getContainedTypeAssignment_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Member__Group_1__0__Impl


    // $ANTLR start rule__Member__Group_1__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7971:1: rule__Member__Group_1__1 : rule__Member__Group_1__1__Impl rule__Member__Group_1__2 ;
    public final void rule__Member__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7975:1: ( rule__Member__Group_1__1__Impl rule__Member__Group_1__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7976:2: rule__Member__Group_1__1__Impl rule__Member__Group_1__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Member__Group_1__1__Impl_in_rule__Member__Group_1__116442);
            rule__Member__Group_1__1__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Member__Group_1__2_in_rule__Member__Group_1__116445);
            rule__Member__Group_1__2();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Member__Group_1__1


    // $ANTLR start rule__Member__Group_1__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7983:1: rule__Member__Group_1__1__Impl : ( ( rule__Member__IdentifierAssignment_1_1 ) ) ;
    public final void rule__Member__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7987:1: ( ( ( rule__Member__IdentifierAssignment_1_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7988:1: ( ( rule__Member__IdentifierAssignment_1_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7988:1: ( ( rule__Member__IdentifierAssignment_1_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7989:1: ( rule__Member__IdentifierAssignment_1_1 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getMemberAccess().getIdentifierAssignment_1_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7990:1: ( rule__Member__IdentifierAssignment_1_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:7990:2: rule__Member__IdentifierAssignment_1_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Member__IdentifierAssignment_1_1_in_rule__Member__Group_1__1__Impl16472);
            rule__Member__IdentifierAssignment_1_1();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getMemberAccess().getIdentifierAssignment_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Member__Group_1__1__Impl


    // $ANTLR start rule__Member__Group_1__2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8000:1: rule__Member__Group_1__2 : rule__Member__Group_1__2__Impl ;
    public final void rule__Member__Group_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8004:1: ( rule__Member__Group_1__2__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8005:2: rule__Member__Group_1__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Member__Group_1__2__Impl_in_rule__Member__Group_1__216502);
            rule__Member__Group_1__2__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Member__Group_1__2


    // $ANTLR start rule__Member__Group_1__2__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8011:1: rule__Member__Group_1__2__Impl : ( ';' ) ;
    public final void rule__Member__Group_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8015:1: ( ( ';' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8016:1: ( ';' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8016:1: ( ';' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8017:1: ';'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getMemberAccess().getSemicolonKeyword_1_2()); 
            }
            match(input,29,FollowSets000.FOLLOW_29_in_rule__Member__Group_1__2__Impl16530); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getMemberAccess().getSemicolonKeyword_1_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Member__Group_1__2__Impl


    // $ANTLR start rule__Member__Group_2__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8036:1: rule__Member__Group_2__0 : rule__Member__Group_2__0__Impl rule__Member__Group_2__1 ;
    public final void rule__Member__Group_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8040:1: ( rule__Member__Group_2__0__Impl rule__Member__Group_2__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8041:2: rule__Member__Group_2__0__Impl rule__Member__Group_2__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Member__Group_2__0__Impl_in_rule__Member__Group_2__016567);
            rule__Member__Group_2__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Member__Group_2__1_in_rule__Member__Group_2__016570);
            rule__Member__Group_2__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Member__Group_2__0


    // $ANTLR start rule__Member__Group_2__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8048:1: rule__Member__Group_2__0__Impl : ( ( rule__Member__ContainedTypeAssignment_2_0 ) ) ;
    public final void rule__Member__Group_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8052:1: ( ( ( rule__Member__ContainedTypeAssignment_2_0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8053:1: ( ( rule__Member__ContainedTypeAssignment_2_0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8053:1: ( ( rule__Member__ContainedTypeAssignment_2_0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8054:1: ( rule__Member__ContainedTypeAssignment_2_0 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getMemberAccess().getContainedTypeAssignment_2_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8055:1: ( rule__Member__ContainedTypeAssignment_2_0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8055:2: rule__Member__ContainedTypeAssignment_2_0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Member__ContainedTypeAssignment_2_0_in_rule__Member__Group_2__0__Impl16597);
            rule__Member__ContainedTypeAssignment_2_0();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getMemberAccess().getContainedTypeAssignment_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Member__Group_2__0__Impl


    // $ANTLR start rule__Member__Group_2__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8065:1: rule__Member__Group_2__1 : rule__Member__Group_2__1__Impl rule__Member__Group_2__2 ;
    public final void rule__Member__Group_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8069:1: ( rule__Member__Group_2__1__Impl rule__Member__Group_2__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8070:2: rule__Member__Group_2__1__Impl rule__Member__Group_2__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Member__Group_2__1__Impl_in_rule__Member__Group_2__116627);
            rule__Member__Group_2__1__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Member__Group_2__2_in_rule__Member__Group_2__116630);
            rule__Member__Group_2__2();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Member__Group_2__1


    // $ANTLR start rule__Member__Group_2__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8077:1: rule__Member__Group_2__1__Impl : ( ( rule__Member__IdentifierAssignment_2_1 ) ) ;
    public final void rule__Member__Group_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8081:1: ( ( ( rule__Member__IdentifierAssignment_2_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8082:1: ( ( rule__Member__IdentifierAssignment_2_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8082:1: ( ( rule__Member__IdentifierAssignment_2_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8083:1: ( rule__Member__IdentifierAssignment_2_1 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getMemberAccess().getIdentifierAssignment_2_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8084:1: ( rule__Member__IdentifierAssignment_2_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8084:2: rule__Member__IdentifierAssignment_2_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Member__IdentifierAssignment_2_1_in_rule__Member__Group_2__1__Impl16657);
            rule__Member__IdentifierAssignment_2_1();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getMemberAccess().getIdentifierAssignment_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Member__Group_2__1__Impl


    // $ANTLR start rule__Member__Group_2__2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8094:1: rule__Member__Group_2__2 : rule__Member__Group_2__2__Impl ;
    public final void rule__Member__Group_2__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8098:1: ( rule__Member__Group_2__2__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8099:2: rule__Member__Group_2__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Member__Group_2__2__Impl_in_rule__Member__Group_2__216687);
            rule__Member__Group_2__2__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Member__Group_2__2


    // $ANTLR start rule__Member__Group_2__2__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8105:1: rule__Member__Group_2__2__Impl : ( ';' ) ;
    public final void rule__Member__Group_2__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8109:1: ( ( ';' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8110:1: ( ';' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8110:1: ( ';' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8111:1: ';'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getMemberAccess().getSemicolonKeyword_2_2()); 
            }
            match(input,29,FollowSets000.FOLLOW_29_in_rule__Member__Group_2__2__Impl16715); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getMemberAccess().getSemicolonKeyword_2_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Member__Group_2__2__Impl


    // $ANTLR start rule__Member__Group_3__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8130:1: rule__Member__Group_3__0 : rule__Member__Group_3__0__Impl rule__Member__Group_3__1 ;
    public final void rule__Member__Group_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8134:1: ( rule__Member__Group_3__0__Impl rule__Member__Group_3__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8135:2: rule__Member__Group_3__0__Impl rule__Member__Group_3__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Member__Group_3__0__Impl_in_rule__Member__Group_3__016752);
            rule__Member__Group_3__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Member__Group_3__1_in_rule__Member__Group_3__016755);
            rule__Member__Group_3__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Member__Group_3__0


    // $ANTLR start rule__Member__Group_3__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8142:1: rule__Member__Group_3__0__Impl : ( ( rule__Member__SharedTypeAssignment_3_0 ) ) ;
    public final void rule__Member__Group_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8146:1: ( ( ( rule__Member__SharedTypeAssignment_3_0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8147:1: ( ( rule__Member__SharedTypeAssignment_3_0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8147:1: ( ( rule__Member__SharedTypeAssignment_3_0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8148:1: ( rule__Member__SharedTypeAssignment_3_0 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getMemberAccess().getSharedTypeAssignment_3_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8149:1: ( rule__Member__SharedTypeAssignment_3_0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8149:2: rule__Member__SharedTypeAssignment_3_0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Member__SharedTypeAssignment_3_0_in_rule__Member__Group_3__0__Impl16782);
            rule__Member__SharedTypeAssignment_3_0();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getMemberAccess().getSharedTypeAssignment_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Member__Group_3__0__Impl


    // $ANTLR start rule__Member__Group_3__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8159:1: rule__Member__Group_3__1 : rule__Member__Group_3__1__Impl rule__Member__Group_3__2 ;
    public final void rule__Member__Group_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8163:1: ( rule__Member__Group_3__1__Impl rule__Member__Group_3__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8164:2: rule__Member__Group_3__1__Impl rule__Member__Group_3__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Member__Group_3__1__Impl_in_rule__Member__Group_3__116812);
            rule__Member__Group_3__1__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Member__Group_3__2_in_rule__Member__Group_3__116815);
            rule__Member__Group_3__2();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Member__Group_3__1


    // $ANTLR start rule__Member__Group_3__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8171:1: rule__Member__Group_3__1__Impl : ( ( rule__Member__IdentifierAssignment_3_1 ) ) ;
    public final void rule__Member__Group_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8175:1: ( ( ( rule__Member__IdentifierAssignment_3_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8176:1: ( ( rule__Member__IdentifierAssignment_3_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8176:1: ( ( rule__Member__IdentifierAssignment_3_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8177:1: ( rule__Member__IdentifierAssignment_3_1 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getMemberAccess().getIdentifierAssignment_3_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8178:1: ( rule__Member__IdentifierAssignment_3_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8178:2: rule__Member__IdentifierAssignment_3_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Member__IdentifierAssignment_3_1_in_rule__Member__Group_3__1__Impl16842);
            rule__Member__IdentifierAssignment_3_1();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getMemberAccess().getIdentifierAssignment_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Member__Group_3__1__Impl


    // $ANTLR start rule__Member__Group_3__2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8188:1: rule__Member__Group_3__2 : rule__Member__Group_3__2__Impl ;
    public final void rule__Member__Group_3__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8192:1: ( rule__Member__Group_3__2__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8193:2: rule__Member__Group_3__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Member__Group_3__2__Impl_in_rule__Member__Group_3__216872);
            rule__Member__Group_3__2__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Member__Group_3__2


    // $ANTLR start rule__Member__Group_3__2__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8199:1: rule__Member__Group_3__2__Impl : ( ';' ) ;
    public final void rule__Member__Group_3__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8203:1: ( ( ';' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8204:1: ( ';' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8204:1: ( ';' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8205:1: ';'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getMemberAccess().getSemicolonKeyword_3_2()); 
            }
            match(input,29,FollowSets000.FOLLOW_29_in_rule__Member__Group_3__2__Impl16900); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getMemberAccess().getSemicolonKeyword_3_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Member__Group_3__2__Impl


    // $ANTLR start rule__Union_type__Group__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8224:1: rule__Union_type__Group__0 : rule__Union_type__Group__0__Impl rule__Union_type__Group__1 ;
    public final void rule__Union_type__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8228:1: ( rule__Union_type__Group__0__Impl rule__Union_type__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8229:2: rule__Union_type__Group__0__Impl rule__Union_type__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Union_type__Group__0__Impl_in_rule__Union_type__Group__016937);
            rule__Union_type__Group__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Union_type__Group__1_in_rule__Union_type__Group__016940);
            rule__Union_type__Group__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Union_type__Group__0


    // $ANTLR start rule__Union_type__Group__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8236:1: rule__Union_type__Group__0__Impl : ( 'union' ) ;
    public final void rule__Union_type__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8240:1: ( ( 'union' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8241:1: ( 'union' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8241:1: ( 'union' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8242:1: 'union'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getUnion_typeAccess().getUnionKeyword_0()); 
            }
            match(input,63,FollowSets000.FOLLOW_63_in_rule__Union_type__Group__0__Impl16968); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getUnion_typeAccess().getUnionKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Union_type__Group__0__Impl


    // $ANTLR start rule__Union_type__Group__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8255:1: rule__Union_type__Group__1 : rule__Union_type__Group__1__Impl rule__Union_type__Group__2 ;
    public final void rule__Union_type__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8259:1: ( rule__Union_type__Group__1__Impl rule__Union_type__Group__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8260:2: rule__Union_type__Group__1__Impl rule__Union_type__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Union_type__Group__1__Impl_in_rule__Union_type__Group__116999);
            rule__Union_type__Group__1__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Union_type__Group__2_in_rule__Union_type__Group__117002);
            rule__Union_type__Group__2();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Union_type__Group__1


    // $ANTLR start rule__Union_type__Group__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8267:1: rule__Union_type__Group__1__Impl : ( ( rule__Union_type__IdentifierAssignment_1 ) ) ;
    public final void rule__Union_type__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8271:1: ( ( ( rule__Union_type__IdentifierAssignment_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8272:1: ( ( rule__Union_type__IdentifierAssignment_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8272:1: ( ( rule__Union_type__IdentifierAssignment_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8273:1: ( rule__Union_type__IdentifierAssignment_1 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getUnion_typeAccess().getIdentifierAssignment_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8274:1: ( rule__Union_type__IdentifierAssignment_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8274:2: rule__Union_type__IdentifierAssignment_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Union_type__IdentifierAssignment_1_in_rule__Union_type__Group__1__Impl17029);
            rule__Union_type__IdentifierAssignment_1();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getUnion_typeAccess().getIdentifierAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Union_type__Group__1__Impl


    // $ANTLR start rule__Union_type__Group__2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8284:1: rule__Union_type__Group__2 : rule__Union_type__Group__2__Impl rule__Union_type__Group__3 ;
    public final void rule__Union_type__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8288:1: ( rule__Union_type__Group__2__Impl rule__Union_type__Group__3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8289:2: rule__Union_type__Group__2__Impl rule__Union_type__Group__3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Union_type__Group__2__Impl_in_rule__Union_type__Group__217059);
            rule__Union_type__Group__2__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Union_type__Group__3_in_rule__Union_type__Group__217062);
            rule__Union_type__Group__3();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Union_type__Group__2


    // $ANTLR start rule__Union_type__Group__2__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8296:1: rule__Union_type__Group__2__Impl : ( 'switch' ) ;
    public final void rule__Union_type__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8300:1: ( ( 'switch' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8301:1: ( 'switch' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8301:1: ( 'switch' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8302:1: 'switch'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getUnion_typeAccess().getSwitchKeyword_2()); 
            }
            match(input,64,FollowSets000.FOLLOW_64_in_rule__Union_type__Group__2__Impl17090); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getUnion_typeAccess().getSwitchKeyword_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Union_type__Group__2__Impl


    // $ANTLR start rule__Union_type__Group__3
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8315:1: rule__Union_type__Group__3 : rule__Union_type__Group__3__Impl rule__Union_type__Group__4 ;
    public final void rule__Union_type__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8319:1: ( rule__Union_type__Group__3__Impl rule__Union_type__Group__4 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8320:2: rule__Union_type__Group__3__Impl rule__Union_type__Group__4
            {
            pushFollow(FollowSets000.FOLLOW_rule__Union_type__Group__3__Impl_in_rule__Union_type__Group__317121);
            rule__Union_type__Group__3__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Union_type__Group__4_in_rule__Union_type__Group__317124);
            rule__Union_type__Group__4();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Union_type__Group__3


    // $ANTLR start rule__Union_type__Group__3__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8327:1: rule__Union_type__Group__3__Impl : ( '(' ) ;
    public final void rule__Union_type__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8331:1: ( ( '(' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8332:1: ( '(' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8332:1: ( '(' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8333:1: '('
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getUnion_typeAccess().getLeftParenthesisKeyword_3()); 
            }
            match(input,50,FollowSets000.FOLLOW_50_in_rule__Union_type__Group__3__Impl17152); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getUnion_typeAccess().getLeftParenthesisKeyword_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Union_type__Group__3__Impl


    // $ANTLR start rule__Union_type__Group__4
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8346:1: rule__Union_type__Group__4 : rule__Union_type__Group__4__Impl rule__Union_type__Group__5 ;
    public final void rule__Union_type__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8350:1: ( rule__Union_type__Group__4__Impl rule__Union_type__Group__5 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8351:2: rule__Union_type__Group__4__Impl rule__Union_type__Group__5
            {
            pushFollow(FollowSets000.FOLLOW_rule__Union_type__Group__4__Impl_in_rule__Union_type__Group__417183);
            rule__Union_type__Group__4__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Union_type__Group__5_in_rule__Union_type__Group__417186);
            rule__Union_type__Group__5();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Union_type__Group__4


    // $ANTLR start rule__Union_type__Group__4__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8358:1: rule__Union_type__Group__4__Impl : ( ( rule__Union_type__Alternatives_4 ) ) ;
    public final void rule__Union_type__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8362:1: ( ( ( rule__Union_type__Alternatives_4 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8363:1: ( ( rule__Union_type__Alternatives_4 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8363:1: ( ( rule__Union_type__Alternatives_4 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8364:1: ( rule__Union_type__Alternatives_4 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getUnion_typeAccess().getAlternatives_4()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8365:1: ( rule__Union_type__Alternatives_4 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8365:2: rule__Union_type__Alternatives_4
            {
            pushFollow(FollowSets000.FOLLOW_rule__Union_type__Alternatives_4_in_rule__Union_type__Group__4__Impl17213);
            rule__Union_type__Alternatives_4();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getUnion_typeAccess().getAlternatives_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Union_type__Group__4__Impl


    // $ANTLR start rule__Union_type__Group__5
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8375:1: rule__Union_type__Group__5 : rule__Union_type__Group__5__Impl rule__Union_type__Group__6 ;
    public final void rule__Union_type__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8379:1: ( rule__Union_type__Group__5__Impl rule__Union_type__Group__6 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8380:2: rule__Union_type__Group__5__Impl rule__Union_type__Group__6
            {
            pushFollow(FollowSets000.FOLLOW_rule__Union_type__Group__5__Impl_in_rule__Union_type__Group__517243);
            rule__Union_type__Group__5__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Union_type__Group__6_in_rule__Union_type__Group__517246);
            rule__Union_type__Group__6();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Union_type__Group__5


    // $ANTLR start rule__Union_type__Group__5__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8387:1: rule__Union_type__Group__5__Impl : ( ')' ) ;
    public final void rule__Union_type__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8391:1: ( ( ')' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8392:1: ( ')' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8392:1: ( ')' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8393:1: ')'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getUnion_typeAccess().getRightParenthesisKeyword_5()); 
            }
            match(input,51,FollowSets000.FOLLOW_51_in_rule__Union_type__Group__5__Impl17274); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getUnion_typeAccess().getRightParenthesisKeyword_5()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Union_type__Group__5__Impl


    // $ANTLR start rule__Union_type__Group__6
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8406:1: rule__Union_type__Group__6 : rule__Union_type__Group__6__Impl rule__Union_type__Group__7 ;
    public final void rule__Union_type__Group__6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8410:1: ( rule__Union_type__Group__6__Impl rule__Union_type__Group__7 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8411:2: rule__Union_type__Group__6__Impl rule__Union_type__Group__7
            {
            pushFollow(FollowSets000.FOLLOW_rule__Union_type__Group__6__Impl_in_rule__Union_type__Group__617305);
            rule__Union_type__Group__6__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Union_type__Group__7_in_rule__Union_type__Group__617308);
            rule__Union_type__Group__7();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Union_type__Group__6


    // $ANTLR start rule__Union_type__Group__6__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8418:1: rule__Union_type__Group__6__Impl : ( '{' ) ;
    public final void rule__Union_type__Group__6__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8422:1: ( ( '{' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8423:1: ( '{' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8423:1: ( '{' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8424:1: '{'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getUnion_typeAccess().getLeftCurlyBracketKeyword_6()); 
            }
            match(input,45,FollowSets000.FOLLOW_45_in_rule__Union_type__Group__6__Impl17336); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getUnion_typeAccess().getLeftCurlyBracketKeyword_6()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Union_type__Group__6__Impl


    // $ANTLR start rule__Union_type__Group__7
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8437:1: rule__Union_type__Group__7 : rule__Union_type__Group__7__Impl rule__Union_type__Group__8 ;
    public final void rule__Union_type__Group__7() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8441:1: ( rule__Union_type__Group__7__Impl rule__Union_type__Group__8 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8442:2: rule__Union_type__Group__7__Impl rule__Union_type__Group__8
            {
            pushFollow(FollowSets000.FOLLOW_rule__Union_type__Group__7__Impl_in_rule__Union_type__Group__717367);
            rule__Union_type__Group__7__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Union_type__Group__8_in_rule__Union_type__Group__717370);
            rule__Union_type__Group__8();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Union_type__Group__7


    // $ANTLR start rule__Union_type__Group__7__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8449:1: rule__Union_type__Group__7__Impl : ( ( ( rule__Union_type__UnionMembersAssignment_7 ) ) ( ( rule__Union_type__UnionMembersAssignment_7 )* ) ) ;
    public final void rule__Union_type__Group__7__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8453:1: ( ( ( ( rule__Union_type__UnionMembersAssignment_7 ) ) ( ( rule__Union_type__UnionMembersAssignment_7 )* ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8454:1: ( ( ( rule__Union_type__UnionMembersAssignment_7 ) ) ( ( rule__Union_type__UnionMembersAssignment_7 )* ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8454:1: ( ( ( rule__Union_type__UnionMembersAssignment_7 ) ) ( ( rule__Union_type__UnionMembersAssignment_7 )* ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8455:1: ( ( rule__Union_type__UnionMembersAssignment_7 ) ) ( ( rule__Union_type__UnionMembersAssignment_7 )* )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8455:1: ( ( rule__Union_type__UnionMembersAssignment_7 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8456:1: ( rule__Union_type__UnionMembersAssignment_7 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getUnion_typeAccess().getUnionMembersAssignment_7()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8457:1: ( rule__Union_type__UnionMembersAssignment_7 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8457:2: rule__Union_type__UnionMembersAssignment_7
            {
            pushFollow(FollowSets000.FOLLOW_rule__Union_type__UnionMembersAssignment_7_in_rule__Union_type__Group__7__Impl17399);
            rule__Union_type__UnionMembersAssignment_7();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getUnion_typeAccess().getUnionMembersAssignment_7()); 
            }

            }

            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8460:1: ( ( rule__Union_type__UnionMembersAssignment_7 )* )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8461:1: ( rule__Union_type__UnionMembersAssignment_7 )*
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getUnion_typeAccess().getUnionMembersAssignment_7()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8462:1: ( rule__Union_type__UnionMembersAssignment_7 )*
            loop72:
            do {
                int alt72=2;
                int LA72_0 = input.LA(1);

                if ( ((LA72_0>=65 && LA72_0<=66)) ) {
                    alt72=1;
                }


                switch (alt72) {
            	case 1 :
            	    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8462:2: rule__Union_type__UnionMembersAssignment_7
            	    {
            	    pushFollow(FollowSets000.FOLLOW_rule__Union_type__UnionMembersAssignment_7_in_rule__Union_type__Group__7__Impl17411);
            	    rule__Union_type__UnionMembersAssignment_7();
            	    _fsp--;
            	    if (failed) return ;

            	    }
            	    break;

            	default :
            	    break loop72;
                }
            } while (true);

            if ( backtracking==0 ) {
               after(grammarAccess.getUnion_typeAccess().getUnionMembersAssignment_7()); 
            }

            }


            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Union_type__Group__7__Impl


    // $ANTLR start rule__Union_type__Group__8
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8473:1: rule__Union_type__Group__8 : rule__Union_type__Group__8__Impl ;
    public final void rule__Union_type__Group__8() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8477:1: ( rule__Union_type__Group__8__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8478:2: rule__Union_type__Group__8__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Union_type__Group__8__Impl_in_rule__Union_type__Group__817444);
            rule__Union_type__Group__8__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Union_type__Group__8


    // $ANTLR start rule__Union_type__Group__8__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8484:1: rule__Union_type__Group__8__Impl : ( '}' ) ;
    public final void rule__Union_type__Group__8__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8488:1: ( ( '}' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8489:1: ( '}' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8489:1: ( '}' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8490:1: '}'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getUnion_typeAccess().getRightCurlyBracketKeyword_8()); 
            }
            match(input,46,FollowSets000.FOLLOW_46_in_rule__Union_type__Group__8__Impl17472); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getUnion_typeAccess().getRightCurlyBracketKeyword_8()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Union_type__Group__8__Impl


    // $ANTLR start rule__Switch_type_spec_cont__Group_1__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8521:1: rule__Switch_type_spec_cont__Group_1__0 : rule__Switch_type_spec_cont__Group_1__0__Impl rule__Switch_type_spec_cont__Group_1__1 ;
    public final void rule__Switch_type_spec_cont__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8525:1: ( rule__Switch_type_spec_cont__Group_1__0__Impl rule__Switch_type_spec_cont__Group_1__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8526:2: rule__Switch_type_spec_cont__Group_1__0__Impl rule__Switch_type_spec_cont__Group_1__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Switch_type_spec_cont__Group_1__0__Impl_in_rule__Switch_type_spec_cont__Group_1__017521);
            rule__Switch_type_spec_cont__Group_1__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Switch_type_spec_cont__Group_1__1_in_rule__Switch_type_spec_cont__Group_1__017524);
            rule__Switch_type_spec_cont__Group_1__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Switch_type_spec_cont__Group_1__0


    // $ANTLR start rule__Switch_type_spec_cont__Group_1__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8533:1: rule__Switch_type_spec_cont__Group_1__0__Impl : ( () ) ;
    public final void rule__Switch_type_spec_cont__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8537:1: ( ( () ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8538:1: ( () )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8538:1: ( () )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8539:1: ()
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getSwitch_type_spec_contAccess().getPrimitiveDefAction_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8540:1: ()
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8542:1: 
            {
            }

            if ( backtracking==0 ) {
               after(grammarAccess.getSwitch_type_spec_contAccess().getPrimitiveDefAction_1_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Switch_type_spec_cont__Group_1__0__Impl


    // $ANTLR start rule__Switch_type_spec_cont__Group_1__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8552:1: rule__Switch_type_spec_cont__Group_1__1 : rule__Switch_type_spec_cont__Group_1__1__Impl ;
    public final void rule__Switch_type_spec_cont__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8556:1: ( rule__Switch_type_spec_cont__Group_1__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8557:2: rule__Switch_type_spec_cont__Group_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Switch_type_spec_cont__Group_1__1__Impl_in_rule__Switch_type_spec_cont__Group_1__117582);
            rule__Switch_type_spec_cont__Group_1__1__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Switch_type_spec_cont__Group_1__1


    // $ANTLR start rule__Switch_type_spec_cont__Group_1__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8563:1: rule__Switch_type_spec_cont__Group_1__1__Impl : ( ( rule__Switch_type_spec_cont__KindAssignment_1_1 ) ) ;
    public final void rule__Switch_type_spec_cont__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8567:1: ( ( ( rule__Switch_type_spec_cont__KindAssignment_1_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8568:1: ( ( rule__Switch_type_spec_cont__KindAssignment_1_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8568:1: ( ( rule__Switch_type_spec_cont__KindAssignment_1_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8569:1: ( rule__Switch_type_spec_cont__KindAssignment_1_1 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getSwitch_type_spec_contAccess().getKindAssignment_1_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8570:1: ( rule__Switch_type_spec_cont__KindAssignment_1_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8570:2: rule__Switch_type_spec_cont__KindAssignment_1_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Switch_type_spec_cont__KindAssignment_1_1_in_rule__Switch_type_spec_cont__Group_1__1__Impl17609);
            rule__Switch_type_spec_cont__KindAssignment_1_1();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getSwitch_type_spec_contAccess().getKindAssignment_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Switch_type_spec_cont__Group_1__1__Impl


    // $ANTLR start rule__Switch_type_spec_cont__Group_2__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8584:1: rule__Switch_type_spec_cont__Group_2__0 : rule__Switch_type_spec_cont__Group_2__0__Impl rule__Switch_type_spec_cont__Group_2__1 ;
    public final void rule__Switch_type_spec_cont__Group_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8588:1: ( rule__Switch_type_spec_cont__Group_2__0__Impl rule__Switch_type_spec_cont__Group_2__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8589:2: rule__Switch_type_spec_cont__Group_2__0__Impl rule__Switch_type_spec_cont__Group_2__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Switch_type_spec_cont__Group_2__0__Impl_in_rule__Switch_type_spec_cont__Group_2__017643);
            rule__Switch_type_spec_cont__Group_2__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Switch_type_spec_cont__Group_2__1_in_rule__Switch_type_spec_cont__Group_2__017646);
            rule__Switch_type_spec_cont__Group_2__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Switch_type_spec_cont__Group_2__0


    // $ANTLR start rule__Switch_type_spec_cont__Group_2__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8596:1: rule__Switch_type_spec_cont__Group_2__0__Impl : ( () ) ;
    public final void rule__Switch_type_spec_cont__Group_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8600:1: ( ( () ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8601:1: ( () )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8601:1: ( () )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8602:1: ()
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getSwitch_type_spec_contAccess().getPrimitiveDefAction_2_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8603:1: ()
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8605:1: 
            {
            }

            if ( backtracking==0 ) {
               after(grammarAccess.getSwitch_type_spec_contAccess().getPrimitiveDefAction_2_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Switch_type_spec_cont__Group_2__0__Impl


    // $ANTLR start rule__Switch_type_spec_cont__Group_2__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8615:1: rule__Switch_type_spec_cont__Group_2__1 : rule__Switch_type_spec_cont__Group_2__1__Impl ;
    public final void rule__Switch_type_spec_cont__Group_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8619:1: ( rule__Switch_type_spec_cont__Group_2__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8620:2: rule__Switch_type_spec_cont__Group_2__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Switch_type_spec_cont__Group_2__1__Impl_in_rule__Switch_type_spec_cont__Group_2__117704);
            rule__Switch_type_spec_cont__Group_2__1__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Switch_type_spec_cont__Group_2__1


    // $ANTLR start rule__Switch_type_spec_cont__Group_2__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8626:1: rule__Switch_type_spec_cont__Group_2__1__Impl : ( ( rule__Switch_type_spec_cont__KindAssignment_2_1 ) ) ;
    public final void rule__Switch_type_spec_cont__Group_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8630:1: ( ( ( rule__Switch_type_spec_cont__KindAssignment_2_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8631:1: ( ( rule__Switch_type_spec_cont__KindAssignment_2_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8631:1: ( ( rule__Switch_type_spec_cont__KindAssignment_2_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8632:1: ( rule__Switch_type_spec_cont__KindAssignment_2_1 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getSwitch_type_spec_contAccess().getKindAssignment_2_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8633:1: ( rule__Switch_type_spec_cont__KindAssignment_2_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8633:2: rule__Switch_type_spec_cont__KindAssignment_2_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Switch_type_spec_cont__KindAssignment_2_1_in_rule__Switch_type_spec_cont__Group_2__1__Impl17731);
            rule__Switch_type_spec_cont__KindAssignment_2_1();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getSwitch_type_spec_contAccess().getKindAssignment_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Switch_type_spec_cont__Group_2__1__Impl


    // $ANTLR start rule__Case_stmt__Group_0__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8647:1: rule__Case_stmt__Group_0__0 : rule__Case_stmt__Group_0__0__Impl rule__Case_stmt__Group_0__1 ;
    public final void rule__Case_stmt__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8651:1: ( rule__Case_stmt__Group_0__0__Impl rule__Case_stmt__Group_0__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8652:2: rule__Case_stmt__Group_0__0__Impl rule__Case_stmt__Group_0__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_0__0__Impl_in_rule__Case_stmt__Group_0__017765);
            rule__Case_stmt__Group_0__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_0__1_in_rule__Case_stmt__Group_0__017768);
            rule__Case_stmt__Group_0__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Case_stmt__Group_0__0


    // $ANTLR start rule__Case_stmt__Group_0__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8659:1: rule__Case_stmt__Group_0__0__Impl : ( ( ( rule__Case_stmt__Alternatives_0_0 ) ) ( ( rule__Case_stmt__Alternatives_0_0 )* ) ) ;
    public final void rule__Case_stmt__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8663:1: ( ( ( ( rule__Case_stmt__Alternatives_0_0 ) ) ( ( rule__Case_stmt__Alternatives_0_0 )* ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8664:1: ( ( ( rule__Case_stmt__Alternatives_0_0 ) ) ( ( rule__Case_stmt__Alternatives_0_0 )* ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8664:1: ( ( ( rule__Case_stmt__Alternatives_0_0 ) ) ( ( rule__Case_stmt__Alternatives_0_0 )* ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8665:1: ( ( rule__Case_stmt__Alternatives_0_0 ) ) ( ( rule__Case_stmt__Alternatives_0_0 )* )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8665:1: ( ( rule__Case_stmt__Alternatives_0_0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8666:1: ( rule__Case_stmt__Alternatives_0_0 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getAlternatives_0_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8667:1: ( rule__Case_stmt__Alternatives_0_0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8667:2: rule__Case_stmt__Alternatives_0_0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Alternatives_0_0_in_rule__Case_stmt__Group_0__0__Impl17797);
            rule__Case_stmt__Alternatives_0_0();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getAlternatives_0_0()); 
            }

            }

            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8670:1: ( ( rule__Case_stmt__Alternatives_0_0 )* )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8671:1: ( rule__Case_stmt__Alternatives_0_0 )*
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getAlternatives_0_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8672:1: ( rule__Case_stmt__Alternatives_0_0 )*
            loop73:
            do {
                int alt73=2;
                int LA73_0 = input.LA(1);

                if ( ((LA73_0>=65 && LA73_0<=66)) ) {
                    alt73=1;
                }


                switch (alt73) {
            	case 1 :
            	    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8672:2: rule__Case_stmt__Alternatives_0_0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Alternatives_0_0_in_rule__Case_stmt__Group_0__0__Impl17809);
            	    rule__Case_stmt__Alternatives_0_0();
            	    _fsp--;
            	    if (failed) return ;

            	    }
            	    break;

            	default :
            	    break loop73;
                }
            } while (true);

            if ( backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getAlternatives_0_0()); 
            }

            }


            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Case_stmt__Group_0__0__Impl


    // $ANTLR start rule__Case_stmt__Group_0__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8683:1: rule__Case_stmt__Group_0__1 : rule__Case_stmt__Group_0__1__Impl rule__Case_stmt__Group_0__2 ;
    public final void rule__Case_stmt__Group_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8687:1: ( rule__Case_stmt__Group_0__1__Impl rule__Case_stmt__Group_0__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8688:2: rule__Case_stmt__Group_0__1__Impl rule__Case_stmt__Group_0__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_0__1__Impl_in_rule__Case_stmt__Group_0__117842);
            rule__Case_stmt__Group_0__1__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_0__2_in_rule__Case_stmt__Group_0__117845);
            rule__Case_stmt__Group_0__2();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Case_stmt__Group_0__1


    // $ANTLR start rule__Case_stmt__Group_0__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8695:1: rule__Case_stmt__Group_0__1__Impl : ( ( rule__Case_stmt__ContainedTypeAssignment_0_1 ) ) ;
    public final void rule__Case_stmt__Group_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8699:1: ( ( ( rule__Case_stmt__ContainedTypeAssignment_0_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8700:1: ( ( rule__Case_stmt__ContainedTypeAssignment_0_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8700:1: ( ( rule__Case_stmt__ContainedTypeAssignment_0_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8701:1: ( rule__Case_stmt__ContainedTypeAssignment_0_1 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getContainedTypeAssignment_0_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8702:1: ( rule__Case_stmt__ContainedTypeAssignment_0_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8702:2: rule__Case_stmt__ContainedTypeAssignment_0_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__ContainedTypeAssignment_0_1_in_rule__Case_stmt__Group_0__1__Impl17872);
            rule__Case_stmt__ContainedTypeAssignment_0_1();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getContainedTypeAssignment_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Case_stmt__Group_0__1__Impl


    // $ANTLR start rule__Case_stmt__Group_0__2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8712:1: rule__Case_stmt__Group_0__2 : rule__Case_stmt__Group_0__2__Impl ;
    public final void rule__Case_stmt__Group_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8716:1: ( rule__Case_stmt__Group_0__2__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8717:2: rule__Case_stmt__Group_0__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_0__2__Impl_in_rule__Case_stmt__Group_0__217902);
            rule__Case_stmt__Group_0__2__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Case_stmt__Group_0__2


    // $ANTLR start rule__Case_stmt__Group_0__2__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8723:1: rule__Case_stmt__Group_0__2__Impl : ( ';' ) ;
    public final void rule__Case_stmt__Group_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8727:1: ( ( ';' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8728:1: ( ';' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8728:1: ( ';' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8729:1: ';'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getSemicolonKeyword_0_2()); 
            }
            match(input,29,FollowSets000.FOLLOW_29_in_rule__Case_stmt__Group_0__2__Impl17930); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getSemicolonKeyword_0_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Case_stmt__Group_0__2__Impl


    // $ANTLR start rule__Case_stmt__Group_0_0_0__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8748:1: rule__Case_stmt__Group_0_0_0__0 : rule__Case_stmt__Group_0_0_0__0__Impl rule__Case_stmt__Group_0_0_0__1 ;
    public final void rule__Case_stmt__Group_0_0_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8752:1: ( rule__Case_stmt__Group_0_0_0__0__Impl rule__Case_stmt__Group_0_0_0__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8753:2: rule__Case_stmt__Group_0_0_0__0__Impl rule__Case_stmt__Group_0_0_0__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_0_0_0__0__Impl_in_rule__Case_stmt__Group_0_0_0__017967);
            rule__Case_stmt__Group_0_0_0__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_0_0_0__1_in_rule__Case_stmt__Group_0_0_0__017970);
            rule__Case_stmt__Group_0_0_0__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Case_stmt__Group_0_0_0__0


    // $ANTLR start rule__Case_stmt__Group_0_0_0__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8760:1: rule__Case_stmt__Group_0_0_0__0__Impl : ( 'case' ) ;
    public final void rule__Case_stmt__Group_0_0_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8764:1: ( ( 'case' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8765:1: ( 'case' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8765:1: ( 'case' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8766:1: 'case'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getCaseKeyword_0_0_0_0()); 
            }
            match(input,65,FollowSets000.FOLLOW_65_in_rule__Case_stmt__Group_0_0_0__0__Impl17998); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getCaseKeyword_0_0_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Case_stmt__Group_0_0_0__0__Impl


    // $ANTLR start rule__Case_stmt__Group_0_0_0__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8779:1: rule__Case_stmt__Group_0_0_0__1 : rule__Case_stmt__Group_0_0_0__1__Impl rule__Case_stmt__Group_0_0_0__2 ;
    public final void rule__Case_stmt__Group_0_0_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8783:1: ( rule__Case_stmt__Group_0_0_0__1__Impl rule__Case_stmt__Group_0_0_0__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8784:2: rule__Case_stmt__Group_0_0_0__1__Impl rule__Case_stmt__Group_0_0_0__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_0_0_0__1__Impl_in_rule__Case_stmt__Group_0_0_0__118029);
            rule__Case_stmt__Group_0_0_0__1__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_0_0_0__2_in_rule__Case_stmt__Group_0_0_0__118032);
            rule__Case_stmt__Group_0_0_0__2();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Case_stmt__Group_0_0_0__1


    // $ANTLR start rule__Case_stmt__Group_0_0_0__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8791:1: rule__Case_stmt__Group_0_0_0__1__Impl : ( ( rule__Case_stmt__LabelAssignment_0_0_0_1 ) ) ;
    public final void rule__Case_stmt__Group_0_0_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8795:1: ( ( ( rule__Case_stmt__LabelAssignment_0_0_0_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8796:1: ( ( rule__Case_stmt__LabelAssignment_0_0_0_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8796:1: ( ( rule__Case_stmt__LabelAssignment_0_0_0_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8797:1: ( rule__Case_stmt__LabelAssignment_0_0_0_1 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getLabelAssignment_0_0_0_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8798:1: ( rule__Case_stmt__LabelAssignment_0_0_0_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8798:2: rule__Case_stmt__LabelAssignment_0_0_0_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__LabelAssignment_0_0_0_1_in_rule__Case_stmt__Group_0_0_0__1__Impl18059);
            rule__Case_stmt__LabelAssignment_0_0_0_1();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getLabelAssignment_0_0_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Case_stmt__Group_0_0_0__1__Impl


    // $ANTLR start rule__Case_stmt__Group_0_0_0__2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8808:1: rule__Case_stmt__Group_0_0_0__2 : rule__Case_stmt__Group_0_0_0__2__Impl ;
    public final void rule__Case_stmt__Group_0_0_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8812:1: ( rule__Case_stmt__Group_0_0_0__2__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8813:2: rule__Case_stmt__Group_0_0_0__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_0_0_0__2__Impl_in_rule__Case_stmt__Group_0_0_0__218089);
            rule__Case_stmt__Group_0_0_0__2__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Case_stmt__Group_0_0_0__2


    // $ANTLR start rule__Case_stmt__Group_0_0_0__2__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8819:1: rule__Case_stmt__Group_0_0_0__2__Impl : ( ':' ) ;
    public final void rule__Case_stmt__Group_0_0_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8823:1: ( ( ':' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8824:1: ( ':' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8824:1: ( ':' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8825:1: ':'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getColonKeyword_0_0_0_2()); 
            }
            match(input,48,FollowSets000.FOLLOW_48_in_rule__Case_stmt__Group_0_0_0__2__Impl18117); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getColonKeyword_0_0_0_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Case_stmt__Group_0_0_0__2__Impl


    // $ANTLR start rule__Case_stmt__Group_0_0_1__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8844:1: rule__Case_stmt__Group_0_0_1__0 : rule__Case_stmt__Group_0_0_1__0__Impl rule__Case_stmt__Group_0_0_1__1 ;
    public final void rule__Case_stmt__Group_0_0_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8848:1: ( rule__Case_stmt__Group_0_0_1__0__Impl rule__Case_stmt__Group_0_0_1__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8849:2: rule__Case_stmt__Group_0_0_1__0__Impl rule__Case_stmt__Group_0_0_1__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_0_0_1__0__Impl_in_rule__Case_stmt__Group_0_0_1__018154);
            rule__Case_stmt__Group_0_0_1__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_0_0_1__1_in_rule__Case_stmt__Group_0_0_1__018157);
            rule__Case_stmt__Group_0_0_1__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Case_stmt__Group_0_0_1__0


    // $ANTLR start rule__Case_stmt__Group_0_0_1__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8856:1: rule__Case_stmt__Group_0_0_1__0__Impl : ( 'default' ) ;
    public final void rule__Case_stmt__Group_0_0_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8860:1: ( ( 'default' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8861:1: ( 'default' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8861:1: ( 'default' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8862:1: 'default'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getDefaultKeyword_0_0_1_0()); 
            }
            match(input,66,FollowSets000.FOLLOW_66_in_rule__Case_stmt__Group_0_0_1__0__Impl18185); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getDefaultKeyword_0_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Case_stmt__Group_0_0_1__0__Impl


    // $ANTLR start rule__Case_stmt__Group_0_0_1__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8875:1: rule__Case_stmt__Group_0_0_1__1 : rule__Case_stmt__Group_0_0_1__1__Impl ;
    public final void rule__Case_stmt__Group_0_0_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8879:1: ( rule__Case_stmt__Group_0_0_1__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8880:2: rule__Case_stmt__Group_0_0_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_0_0_1__1__Impl_in_rule__Case_stmt__Group_0_0_1__118216);
            rule__Case_stmt__Group_0_0_1__1__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Case_stmt__Group_0_0_1__1


    // $ANTLR start rule__Case_stmt__Group_0_0_1__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8886:1: rule__Case_stmt__Group_0_0_1__1__Impl : ( ':' ) ;
    public final void rule__Case_stmt__Group_0_0_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8890:1: ( ( ':' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8891:1: ( ':' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8891:1: ( ':' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8892:1: ':'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getColonKeyword_0_0_1_1()); 
            }
            match(input,48,FollowSets000.FOLLOW_48_in_rule__Case_stmt__Group_0_0_1__1__Impl18244); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getColonKeyword_0_0_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Case_stmt__Group_0_0_1__1__Impl


    // $ANTLR start rule__Case_stmt__Group_1__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8909:1: rule__Case_stmt__Group_1__0 : rule__Case_stmt__Group_1__0__Impl rule__Case_stmt__Group_1__1 ;
    public final void rule__Case_stmt__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8913:1: ( rule__Case_stmt__Group_1__0__Impl rule__Case_stmt__Group_1__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8914:2: rule__Case_stmt__Group_1__0__Impl rule__Case_stmt__Group_1__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_1__0__Impl_in_rule__Case_stmt__Group_1__018279);
            rule__Case_stmt__Group_1__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_1__1_in_rule__Case_stmt__Group_1__018282);
            rule__Case_stmt__Group_1__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Case_stmt__Group_1__0


    // $ANTLR start rule__Case_stmt__Group_1__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8921:1: rule__Case_stmt__Group_1__0__Impl : ( ( ( rule__Case_stmt__Alternatives_1_0 ) ) ( ( rule__Case_stmt__Alternatives_1_0 )* ) ) ;
    public final void rule__Case_stmt__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8925:1: ( ( ( ( rule__Case_stmt__Alternatives_1_0 ) ) ( ( rule__Case_stmt__Alternatives_1_0 )* ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8926:1: ( ( ( rule__Case_stmt__Alternatives_1_0 ) ) ( ( rule__Case_stmt__Alternatives_1_0 )* ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8926:1: ( ( ( rule__Case_stmt__Alternatives_1_0 ) ) ( ( rule__Case_stmt__Alternatives_1_0 )* ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8927:1: ( ( rule__Case_stmt__Alternatives_1_0 ) ) ( ( rule__Case_stmt__Alternatives_1_0 )* )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8927:1: ( ( rule__Case_stmt__Alternatives_1_0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8928:1: ( rule__Case_stmt__Alternatives_1_0 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getAlternatives_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8929:1: ( rule__Case_stmt__Alternatives_1_0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8929:2: rule__Case_stmt__Alternatives_1_0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Alternatives_1_0_in_rule__Case_stmt__Group_1__0__Impl18311);
            rule__Case_stmt__Alternatives_1_0();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getAlternatives_1_0()); 
            }

            }

            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8932:1: ( ( rule__Case_stmt__Alternatives_1_0 )* )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8933:1: ( rule__Case_stmt__Alternatives_1_0 )*
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getAlternatives_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8934:1: ( rule__Case_stmt__Alternatives_1_0 )*
            loop74:
            do {
                int alt74=2;
                int LA74_0 = input.LA(1);

                if ( ((LA74_0>=65 && LA74_0<=66)) ) {
                    alt74=1;
                }


                switch (alt74) {
            	case 1 :
            	    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8934:2: rule__Case_stmt__Alternatives_1_0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Alternatives_1_0_in_rule__Case_stmt__Group_1__0__Impl18323);
            	    rule__Case_stmt__Alternatives_1_0();
            	    _fsp--;
            	    if (failed) return ;

            	    }
            	    break;

            	default :
            	    break loop74;
                }
            } while (true);

            if ( backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getAlternatives_1_0()); 
            }

            }


            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Case_stmt__Group_1__0__Impl


    // $ANTLR start rule__Case_stmt__Group_1__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8945:1: rule__Case_stmt__Group_1__1 : rule__Case_stmt__Group_1__1__Impl rule__Case_stmt__Group_1__2 ;
    public final void rule__Case_stmt__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8949:1: ( rule__Case_stmt__Group_1__1__Impl rule__Case_stmt__Group_1__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8950:2: rule__Case_stmt__Group_1__1__Impl rule__Case_stmt__Group_1__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_1__1__Impl_in_rule__Case_stmt__Group_1__118356);
            rule__Case_stmt__Group_1__1__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_1__2_in_rule__Case_stmt__Group_1__118359);
            rule__Case_stmt__Group_1__2();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Case_stmt__Group_1__1


    // $ANTLR start rule__Case_stmt__Group_1__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8957:1: rule__Case_stmt__Group_1__1__Impl : ( ( rule__Case_stmt__Alternatives_1_1 ) ) ;
    public final void rule__Case_stmt__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8961:1: ( ( ( rule__Case_stmt__Alternatives_1_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8962:1: ( ( rule__Case_stmt__Alternatives_1_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8962:1: ( ( rule__Case_stmt__Alternatives_1_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8963:1: ( rule__Case_stmt__Alternatives_1_1 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getAlternatives_1_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8964:1: ( rule__Case_stmt__Alternatives_1_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8964:2: rule__Case_stmt__Alternatives_1_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Alternatives_1_1_in_rule__Case_stmt__Group_1__1__Impl18386);
            rule__Case_stmt__Alternatives_1_1();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getAlternatives_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Case_stmt__Group_1__1__Impl


    // $ANTLR start rule__Case_stmt__Group_1__2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8974:1: rule__Case_stmt__Group_1__2 : rule__Case_stmt__Group_1__2__Impl rule__Case_stmt__Group_1__3 ;
    public final void rule__Case_stmt__Group_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8978:1: ( rule__Case_stmt__Group_1__2__Impl rule__Case_stmt__Group_1__3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8979:2: rule__Case_stmt__Group_1__2__Impl rule__Case_stmt__Group_1__3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_1__2__Impl_in_rule__Case_stmt__Group_1__218416);
            rule__Case_stmt__Group_1__2__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_1__3_in_rule__Case_stmt__Group_1__218419);
            rule__Case_stmt__Group_1__3();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Case_stmt__Group_1__2


    // $ANTLR start rule__Case_stmt__Group_1__2__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8986:1: rule__Case_stmt__Group_1__2__Impl : ( ( rule__Case_stmt__IdentifierAssignment_1_2 ) ) ;
    public final void rule__Case_stmt__Group_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8990:1: ( ( ( rule__Case_stmt__IdentifierAssignment_1_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8991:1: ( ( rule__Case_stmt__IdentifierAssignment_1_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8991:1: ( ( rule__Case_stmt__IdentifierAssignment_1_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8992:1: ( rule__Case_stmt__IdentifierAssignment_1_2 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getIdentifierAssignment_1_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8993:1: ( rule__Case_stmt__IdentifierAssignment_1_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:8993:2: rule__Case_stmt__IdentifierAssignment_1_2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__IdentifierAssignment_1_2_in_rule__Case_stmt__Group_1__2__Impl18446);
            rule__Case_stmt__IdentifierAssignment_1_2();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getIdentifierAssignment_1_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Case_stmt__Group_1__2__Impl


    // $ANTLR start rule__Case_stmt__Group_1__3
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9003:1: rule__Case_stmt__Group_1__3 : rule__Case_stmt__Group_1__3__Impl ;
    public final void rule__Case_stmt__Group_1__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9007:1: ( rule__Case_stmt__Group_1__3__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9008:2: rule__Case_stmt__Group_1__3__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_1__3__Impl_in_rule__Case_stmt__Group_1__318476);
            rule__Case_stmt__Group_1__3__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Case_stmt__Group_1__3


    // $ANTLR start rule__Case_stmt__Group_1__3__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9014:1: rule__Case_stmt__Group_1__3__Impl : ( ';' ) ;
    public final void rule__Case_stmt__Group_1__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9018:1: ( ( ';' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9019:1: ( ';' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9019:1: ( ';' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9020:1: ';'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getSemicolonKeyword_1_3()); 
            }
            match(input,29,FollowSets000.FOLLOW_29_in_rule__Case_stmt__Group_1__3__Impl18504); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getSemicolonKeyword_1_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Case_stmt__Group_1__3__Impl


    // $ANTLR start rule__Case_stmt__Group_1_0_0__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9041:1: rule__Case_stmt__Group_1_0_0__0 : rule__Case_stmt__Group_1_0_0__0__Impl rule__Case_stmt__Group_1_0_0__1 ;
    public final void rule__Case_stmt__Group_1_0_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9045:1: ( rule__Case_stmt__Group_1_0_0__0__Impl rule__Case_stmt__Group_1_0_0__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9046:2: rule__Case_stmt__Group_1_0_0__0__Impl rule__Case_stmt__Group_1_0_0__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_1_0_0__0__Impl_in_rule__Case_stmt__Group_1_0_0__018543);
            rule__Case_stmt__Group_1_0_0__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_1_0_0__1_in_rule__Case_stmt__Group_1_0_0__018546);
            rule__Case_stmt__Group_1_0_0__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Case_stmt__Group_1_0_0__0


    // $ANTLR start rule__Case_stmt__Group_1_0_0__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9053:1: rule__Case_stmt__Group_1_0_0__0__Impl : ( 'case' ) ;
    public final void rule__Case_stmt__Group_1_0_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9057:1: ( ( 'case' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9058:1: ( 'case' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9058:1: ( 'case' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9059:1: 'case'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getCaseKeyword_1_0_0_0()); 
            }
            match(input,65,FollowSets000.FOLLOW_65_in_rule__Case_stmt__Group_1_0_0__0__Impl18574); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getCaseKeyword_1_0_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Case_stmt__Group_1_0_0__0__Impl


    // $ANTLR start rule__Case_stmt__Group_1_0_0__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9072:1: rule__Case_stmt__Group_1_0_0__1 : rule__Case_stmt__Group_1_0_0__1__Impl rule__Case_stmt__Group_1_0_0__2 ;
    public final void rule__Case_stmt__Group_1_0_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9076:1: ( rule__Case_stmt__Group_1_0_0__1__Impl rule__Case_stmt__Group_1_0_0__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9077:2: rule__Case_stmt__Group_1_0_0__1__Impl rule__Case_stmt__Group_1_0_0__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_1_0_0__1__Impl_in_rule__Case_stmt__Group_1_0_0__118605);
            rule__Case_stmt__Group_1_0_0__1__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_1_0_0__2_in_rule__Case_stmt__Group_1_0_0__118608);
            rule__Case_stmt__Group_1_0_0__2();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Case_stmt__Group_1_0_0__1


    // $ANTLR start rule__Case_stmt__Group_1_0_0__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9084:1: rule__Case_stmt__Group_1_0_0__1__Impl : ( ( rule__Case_stmt__LabelAssignment_1_0_0_1 ) ) ;
    public final void rule__Case_stmt__Group_1_0_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9088:1: ( ( ( rule__Case_stmt__LabelAssignment_1_0_0_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9089:1: ( ( rule__Case_stmt__LabelAssignment_1_0_0_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9089:1: ( ( rule__Case_stmt__LabelAssignment_1_0_0_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9090:1: ( rule__Case_stmt__LabelAssignment_1_0_0_1 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getLabelAssignment_1_0_0_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9091:1: ( rule__Case_stmt__LabelAssignment_1_0_0_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9091:2: rule__Case_stmt__LabelAssignment_1_0_0_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__LabelAssignment_1_0_0_1_in_rule__Case_stmt__Group_1_0_0__1__Impl18635);
            rule__Case_stmt__LabelAssignment_1_0_0_1();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getLabelAssignment_1_0_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Case_stmt__Group_1_0_0__1__Impl


    // $ANTLR start rule__Case_stmt__Group_1_0_0__2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9101:1: rule__Case_stmt__Group_1_0_0__2 : rule__Case_stmt__Group_1_0_0__2__Impl ;
    public final void rule__Case_stmt__Group_1_0_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9105:1: ( rule__Case_stmt__Group_1_0_0__2__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9106:2: rule__Case_stmt__Group_1_0_0__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_1_0_0__2__Impl_in_rule__Case_stmt__Group_1_0_0__218665);
            rule__Case_stmt__Group_1_0_0__2__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Case_stmt__Group_1_0_0__2


    // $ANTLR start rule__Case_stmt__Group_1_0_0__2__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9112:1: rule__Case_stmt__Group_1_0_0__2__Impl : ( ':' ) ;
    public final void rule__Case_stmt__Group_1_0_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9116:1: ( ( ':' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9117:1: ( ':' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9117:1: ( ':' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9118:1: ':'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getColonKeyword_1_0_0_2()); 
            }
            match(input,48,FollowSets000.FOLLOW_48_in_rule__Case_stmt__Group_1_0_0__2__Impl18693); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getColonKeyword_1_0_0_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Case_stmt__Group_1_0_0__2__Impl


    // $ANTLR start rule__Case_stmt__Group_1_0_1__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9137:1: rule__Case_stmt__Group_1_0_1__0 : rule__Case_stmt__Group_1_0_1__0__Impl rule__Case_stmt__Group_1_0_1__1 ;
    public final void rule__Case_stmt__Group_1_0_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9141:1: ( rule__Case_stmt__Group_1_0_1__0__Impl rule__Case_stmt__Group_1_0_1__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9142:2: rule__Case_stmt__Group_1_0_1__0__Impl rule__Case_stmt__Group_1_0_1__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_1_0_1__0__Impl_in_rule__Case_stmt__Group_1_0_1__018730);
            rule__Case_stmt__Group_1_0_1__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_1_0_1__1_in_rule__Case_stmt__Group_1_0_1__018733);
            rule__Case_stmt__Group_1_0_1__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Case_stmt__Group_1_0_1__0


    // $ANTLR start rule__Case_stmt__Group_1_0_1__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9149:1: rule__Case_stmt__Group_1_0_1__0__Impl : ( 'default' ) ;
    public final void rule__Case_stmt__Group_1_0_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9153:1: ( ( 'default' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9154:1: ( 'default' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9154:1: ( 'default' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9155:1: 'default'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getDefaultKeyword_1_0_1_0()); 
            }
            match(input,66,FollowSets000.FOLLOW_66_in_rule__Case_stmt__Group_1_0_1__0__Impl18761); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getDefaultKeyword_1_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Case_stmt__Group_1_0_1__0__Impl


    // $ANTLR start rule__Case_stmt__Group_1_0_1__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9168:1: rule__Case_stmt__Group_1_0_1__1 : rule__Case_stmt__Group_1_0_1__1__Impl ;
    public final void rule__Case_stmt__Group_1_0_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9172:1: ( rule__Case_stmt__Group_1_0_1__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9173:2: rule__Case_stmt__Group_1_0_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_1_0_1__1__Impl_in_rule__Case_stmt__Group_1_0_1__118792);
            rule__Case_stmt__Group_1_0_1__1__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Case_stmt__Group_1_0_1__1


    // $ANTLR start rule__Case_stmt__Group_1_0_1__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9179:1: rule__Case_stmt__Group_1_0_1__1__Impl : ( ':' ) ;
    public final void rule__Case_stmt__Group_1_0_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9183:1: ( ( ':' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9184:1: ( ':' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9184:1: ( ':' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9185:1: ':'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getColonKeyword_1_0_1_1()); 
            }
            match(input,48,FollowSets000.FOLLOW_48_in_rule__Case_stmt__Group_1_0_1__1__Impl18820); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getColonKeyword_1_0_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Case_stmt__Group_1_0_1__1__Impl


    // $ANTLR start rule__Enum_type__Group__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9202:1: rule__Enum_type__Group__0 : rule__Enum_type__Group__0__Impl rule__Enum_type__Group__1 ;
    public final void rule__Enum_type__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9206:1: ( rule__Enum_type__Group__0__Impl rule__Enum_type__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9207:2: rule__Enum_type__Group__0__Impl rule__Enum_type__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Enum_type__Group__0__Impl_in_rule__Enum_type__Group__018855);
            rule__Enum_type__Group__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Enum_type__Group__1_in_rule__Enum_type__Group__018858);
            rule__Enum_type__Group__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Enum_type__Group__0


    // $ANTLR start rule__Enum_type__Group__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9214:1: rule__Enum_type__Group__0__Impl : ( 'enum' ) ;
    public final void rule__Enum_type__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9218:1: ( ( 'enum' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9219:1: ( 'enum' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9219:1: ( 'enum' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9220:1: 'enum'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getEnum_typeAccess().getEnumKeyword_0()); 
            }
            match(input,67,FollowSets000.FOLLOW_67_in_rule__Enum_type__Group__0__Impl18886); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getEnum_typeAccess().getEnumKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Enum_type__Group__0__Impl


    // $ANTLR start rule__Enum_type__Group__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9233:1: rule__Enum_type__Group__1 : rule__Enum_type__Group__1__Impl rule__Enum_type__Group__2 ;
    public final void rule__Enum_type__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9237:1: ( rule__Enum_type__Group__1__Impl rule__Enum_type__Group__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9238:2: rule__Enum_type__Group__1__Impl rule__Enum_type__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Enum_type__Group__1__Impl_in_rule__Enum_type__Group__118917);
            rule__Enum_type__Group__1__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Enum_type__Group__2_in_rule__Enum_type__Group__118920);
            rule__Enum_type__Group__2();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Enum_type__Group__1


    // $ANTLR start rule__Enum_type__Group__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9245:1: rule__Enum_type__Group__1__Impl : ( ( rule__Enum_type__IdentifierAssignment_1 ) ) ;
    public final void rule__Enum_type__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9249:1: ( ( ( rule__Enum_type__IdentifierAssignment_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9250:1: ( ( rule__Enum_type__IdentifierAssignment_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9250:1: ( ( rule__Enum_type__IdentifierAssignment_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9251:1: ( rule__Enum_type__IdentifierAssignment_1 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getEnum_typeAccess().getIdentifierAssignment_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9252:1: ( rule__Enum_type__IdentifierAssignment_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9252:2: rule__Enum_type__IdentifierAssignment_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Enum_type__IdentifierAssignment_1_in_rule__Enum_type__Group__1__Impl18947);
            rule__Enum_type__IdentifierAssignment_1();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getEnum_typeAccess().getIdentifierAssignment_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Enum_type__Group__1__Impl


    // $ANTLR start rule__Enum_type__Group__2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9262:1: rule__Enum_type__Group__2 : rule__Enum_type__Group__2__Impl rule__Enum_type__Group__3 ;
    public final void rule__Enum_type__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9266:1: ( rule__Enum_type__Group__2__Impl rule__Enum_type__Group__3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9267:2: rule__Enum_type__Group__2__Impl rule__Enum_type__Group__3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Enum_type__Group__2__Impl_in_rule__Enum_type__Group__218977);
            rule__Enum_type__Group__2__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Enum_type__Group__3_in_rule__Enum_type__Group__218980);
            rule__Enum_type__Group__3();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Enum_type__Group__2


    // $ANTLR start rule__Enum_type__Group__2__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9274:1: rule__Enum_type__Group__2__Impl : ( '{' ) ;
    public final void rule__Enum_type__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9278:1: ( ( '{' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9279:1: ( '{' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9279:1: ( '{' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9280:1: '{'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getEnum_typeAccess().getLeftCurlyBracketKeyword_2()); 
            }
            match(input,45,FollowSets000.FOLLOW_45_in_rule__Enum_type__Group__2__Impl19008); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getEnum_typeAccess().getLeftCurlyBracketKeyword_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Enum_type__Group__2__Impl


    // $ANTLR start rule__Enum_type__Group__3
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9293:1: rule__Enum_type__Group__3 : rule__Enum_type__Group__3__Impl rule__Enum_type__Group__4 ;
    public final void rule__Enum_type__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9297:1: ( rule__Enum_type__Group__3__Impl rule__Enum_type__Group__4 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9298:2: rule__Enum_type__Group__3__Impl rule__Enum_type__Group__4
            {
            pushFollow(FollowSets000.FOLLOW_rule__Enum_type__Group__3__Impl_in_rule__Enum_type__Group__319039);
            rule__Enum_type__Group__3__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Enum_type__Group__4_in_rule__Enum_type__Group__319042);
            rule__Enum_type__Group__4();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Enum_type__Group__3


    // $ANTLR start rule__Enum_type__Group__3__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9305:1: rule__Enum_type__Group__3__Impl : ( ( rule__Enum_type__MembersAssignment_3 ) ) ;
    public final void rule__Enum_type__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9309:1: ( ( ( rule__Enum_type__MembersAssignment_3 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9310:1: ( ( rule__Enum_type__MembersAssignment_3 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9310:1: ( ( rule__Enum_type__MembersAssignment_3 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9311:1: ( rule__Enum_type__MembersAssignment_3 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getEnum_typeAccess().getMembersAssignment_3()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9312:1: ( rule__Enum_type__MembersAssignment_3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9312:2: rule__Enum_type__MembersAssignment_3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Enum_type__MembersAssignment_3_in_rule__Enum_type__Group__3__Impl19069);
            rule__Enum_type__MembersAssignment_3();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getEnum_typeAccess().getMembersAssignment_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Enum_type__Group__3__Impl


    // $ANTLR start rule__Enum_type__Group__4
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9322:1: rule__Enum_type__Group__4 : rule__Enum_type__Group__4__Impl rule__Enum_type__Group__5 ;
    public final void rule__Enum_type__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9326:1: ( rule__Enum_type__Group__4__Impl rule__Enum_type__Group__5 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9327:2: rule__Enum_type__Group__4__Impl rule__Enum_type__Group__5
            {
            pushFollow(FollowSets000.FOLLOW_rule__Enum_type__Group__4__Impl_in_rule__Enum_type__Group__419099);
            rule__Enum_type__Group__4__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Enum_type__Group__5_in_rule__Enum_type__Group__419102);
            rule__Enum_type__Group__5();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Enum_type__Group__4


    // $ANTLR start rule__Enum_type__Group__4__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9334:1: rule__Enum_type__Group__4__Impl : ( ( rule__Enum_type__Group_4__0 )* ) ;
    public final void rule__Enum_type__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9338:1: ( ( ( rule__Enum_type__Group_4__0 )* ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9339:1: ( ( rule__Enum_type__Group_4__0 )* )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9339:1: ( ( rule__Enum_type__Group_4__0 )* )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9340:1: ( rule__Enum_type__Group_4__0 )*
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getEnum_typeAccess().getGroup_4()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9341:1: ( rule__Enum_type__Group_4__0 )*
            loop75:
            do {
                int alt75=2;
                int LA75_0 = input.LA(1);

                if ( (LA75_0==49) ) {
                    alt75=1;
                }


                switch (alt75) {
            	case 1 :
            	    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9341:2: rule__Enum_type__Group_4__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_rule__Enum_type__Group_4__0_in_rule__Enum_type__Group__4__Impl19129);
            	    rule__Enum_type__Group_4__0();
            	    _fsp--;
            	    if (failed) return ;

            	    }
            	    break;

            	default :
            	    break loop75;
                }
            } while (true);

            if ( backtracking==0 ) {
               after(grammarAccess.getEnum_typeAccess().getGroup_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Enum_type__Group__4__Impl


    // $ANTLR start rule__Enum_type__Group__5
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9351:1: rule__Enum_type__Group__5 : rule__Enum_type__Group__5__Impl ;
    public final void rule__Enum_type__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9355:1: ( rule__Enum_type__Group__5__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9356:2: rule__Enum_type__Group__5__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Enum_type__Group__5__Impl_in_rule__Enum_type__Group__519160);
            rule__Enum_type__Group__5__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Enum_type__Group__5


    // $ANTLR start rule__Enum_type__Group__5__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9362:1: rule__Enum_type__Group__5__Impl : ( '}' ) ;
    public final void rule__Enum_type__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9366:1: ( ( '}' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9367:1: ( '}' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9367:1: ( '}' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9368:1: '}'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getEnum_typeAccess().getRightCurlyBracketKeyword_5()); 
            }
            match(input,46,FollowSets000.FOLLOW_46_in_rule__Enum_type__Group__5__Impl19188); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getEnum_typeAccess().getRightCurlyBracketKeyword_5()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Enum_type__Group__5__Impl


    // $ANTLR start rule__Enum_type__Group_4__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9393:1: rule__Enum_type__Group_4__0 : rule__Enum_type__Group_4__0__Impl rule__Enum_type__Group_4__1 ;
    public final void rule__Enum_type__Group_4__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9397:1: ( rule__Enum_type__Group_4__0__Impl rule__Enum_type__Group_4__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9398:2: rule__Enum_type__Group_4__0__Impl rule__Enum_type__Group_4__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Enum_type__Group_4__0__Impl_in_rule__Enum_type__Group_4__019231);
            rule__Enum_type__Group_4__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Enum_type__Group_4__1_in_rule__Enum_type__Group_4__019234);
            rule__Enum_type__Group_4__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Enum_type__Group_4__0


    // $ANTLR start rule__Enum_type__Group_4__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9405:1: rule__Enum_type__Group_4__0__Impl : ( ',' ) ;
    public final void rule__Enum_type__Group_4__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9409:1: ( ( ',' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9410:1: ( ',' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9410:1: ( ',' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9411:1: ','
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getEnum_typeAccess().getCommaKeyword_4_0()); 
            }
            match(input,49,FollowSets000.FOLLOW_49_in_rule__Enum_type__Group_4__0__Impl19262); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getEnum_typeAccess().getCommaKeyword_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Enum_type__Group_4__0__Impl


    // $ANTLR start rule__Enum_type__Group_4__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9424:1: rule__Enum_type__Group_4__1 : rule__Enum_type__Group_4__1__Impl ;
    public final void rule__Enum_type__Group_4__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9428:1: ( rule__Enum_type__Group_4__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9429:2: rule__Enum_type__Group_4__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Enum_type__Group_4__1__Impl_in_rule__Enum_type__Group_4__119293);
            rule__Enum_type__Group_4__1__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Enum_type__Group_4__1


    // $ANTLR start rule__Enum_type__Group_4__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9435:1: rule__Enum_type__Group_4__1__Impl : ( ( rule__Enum_type__MembersAssignment_4_1 ) ) ;
    public final void rule__Enum_type__Group_4__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9439:1: ( ( ( rule__Enum_type__MembersAssignment_4_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9440:1: ( ( rule__Enum_type__MembersAssignment_4_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9440:1: ( ( rule__Enum_type__MembersAssignment_4_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9441:1: ( rule__Enum_type__MembersAssignment_4_1 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getEnum_typeAccess().getMembersAssignment_4_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9442:1: ( rule__Enum_type__MembersAssignment_4_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9442:2: rule__Enum_type__MembersAssignment_4_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Enum_type__MembersAssignment_4_1_in_rule__Enum_type__Group_4__1__Impl19320);
            rule__Enum_type__MembersAssignment_4_1();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getEnum_typeAccess().getMembersAssignment_4_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Enum_type__Group_4__1__Impl


    // $ANTLR start rule__Constr_forward_decl__Group_0__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9456:1: rule__Constr_forward_decl__Group_0__0 : rule__Constr_forward_decl__Group_0__0__Impl rule__Constr_forward_decl__Group_0__1 ;
    public final void rule__Constr_forward_decl__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9460:1: ( rule__Constr_forward_decl__Group_0__0__Impl rule__Constr_forward_decl__Group_0__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9461:2: rule__Constr_forward_decl__Group_0__0__Impl rule__Constr_forward_decl__Group_0__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Constr_forward_decl__Group_0__0__Impl_in_rule__Constr_forward_decl__Group_0__019354);
            rule__Constr_forward_decl__Group_0__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Constr_forward_decl__Group_0__1_in_rule__Constr_forward_decl__Group_0__019357);
            rule__Constr_forward_decl__Group_0__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Constr_forward_decl__Group_0__0


    // $ANTLR start rule__Constr_forward_decl__Group_0__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9468:1: rule__Constr_forward_decl__Group_0__0__Impl : ( 'struct' ) ;
    public final void rule__Constr_forward_decl__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9472:1: ( ( 'struct' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9473:1: ( 'struct' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9473:1: ( 'struct' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9474:1: 'struct'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getConstr_forward_declAccess().getStructKeyword_0_0()); 
            }
            match(input,62,FollowSets000.FOLLOW_62_in_rule__Constr_forward_decl__Group_0__0__Impl19385); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getConstr_forward_declAccess().getStructKeyword_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Constr_forward_decl__Group_0__0__Impl


    // $ANTLR start rule__Constr_forward_decl__Group_0__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9487:1: rule__Constr_forward_decl__Group_0__1 : rule__Constr_forward_decl__Group_0__1__Impl ;
    public final void rule__Constr_forward_decl__Group_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9491:1: ( rule__Constr_forward_decl__Group_0__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9492:2: rule__Constr_forward_decl__Group_0__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Constr_forward_decl__Group_0__1__Impl_in_rule__Constr_forward_decl__Group_0__119416);
            rule__Constr_forward_decl__Group_0__1__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Constr_forward_decl__Group_0__1


    // $ANTLR start rule__Constr_forward_decl__Group_0__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9498:1: rule__Constr_forward_decl__Group_0__1__Impl : ( RULE_ID ) ;
    public final void rule__Constr_forward_decl__Group_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9502:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9503:1: ( RULE_ID )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9503:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9504:1: RULE_ID
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getConstr_forward_declAccess().getIDTerminalRuleCall_0_1()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Constr_forward_decl__Group_0__1__Impl19443); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getConstr_forward_declAccess().getIDTerminalRuleCall_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Constr_forward_decl__Group_0__1__Impl


    // $ANTLR start rule__Constr_forward_decl__Group_1__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9519:1: rule__Constr_forward_decl__Group_1__0 : rule__Constr_forward_decl__Group_1__0__Impl rule__Constr_forward_decl__Group_1__1 ;
    public final void rule__Constr_forward_decl__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9523:1: ( rule__Constr_forward_decl__Group_1__0__Impl rule__Constr_forward_decl__Group_1__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9524:2: rule__Constr_forward_decl__Group_1__0__Impl rule__Constr_forward_decl__Group_1__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Constr_forward_decl__Group_1__0__Impl_in_rule__Constr_forward_decl__Group_1__019476);
            rule__Constr_forward_decl__Group_1__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Constr_forward_decl__Group_1__1_in_rule__Constr_forward_decl__Group_1__019479);
            rule__Constr_forward_decl__Group_1__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Constr_forward_decl__Group_1__0


    // $ANTLR start rule__Constr_forward_decl__Group_1__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9531:1: rule__Constr_forward_decl__Group_1__0__Impl : ( 'union' ) ;
    public final void rule__Constr_forward_decl__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9535:1: ( ( 'union' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9536:1: ( 'union' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9536:1: ( 'union' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9537:1: 'union'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getConstr_forward_declAccess().getUnionKeyword_1_0()); 
            }
            match(input,63,FollowSets000.FOLLOW_63_in_rule__Constr_forward_decl__Group_1__0__Impl19507); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getConstr_forward_declAccess().getUnionKeyword_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Constr_forward_decl__Group_1__0__Impl


    // $ANTLR start rule__Constr_forward_decl__Group_1__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9550:1: rule__Constr_forward_decl__Group_1__1 : rule__Constr_forward_decl__Group_1__1__Impl ;
    public final void rule__Constr_forward_decl__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9554:1: ( rule__Constr_forward_decl__Group_1__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9555:2: rule__Constr_forward_decl__Group_1__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Constr_forward_decl__Group_1__1__Impl_in_rule__Constr_forward_decl__Group_1__119538);
            rule__Constr_forward_decl__Group_1__1__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Constr_forward_decl__Group_1__1


    // $ANTLR start rule__Constr_forward_decl__Group_1__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9561:1: rule__Constr_forward_decl__Group_1__1__Impl : ( RULE_ID ) ;
    public final void rule__Constr_forward_decl__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9565:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9566:1: ( RULE_ID )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9566:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9567:1: RULE_ID
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getConstr_forward_declAccess().getIDTerminalRuleCall_1_1()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Constr_forward_decl__Group_1__1__Impl19565); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getConstr_forward_declAccess().getIDTerminalRuleCall_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Constr_forward_decl__Group_1__1__Impl


    // $ANTLR start rule__Const_decl__Group__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9582:1: rule__Const_decl__Group__0 : rule__Const_decl__Group__0__Impl rule__Const_decl__Group__1 ;
    public final void rule__Const_decl__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9586:1: ( rule__Const_decl__Group__0__Impl rule__Const_decl__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9587:2: rule__Const_decl__Group__0__Impl rule__Const_decl__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Const_decl__Group__0__Impl_in_rule__Const_decl__Group__019598);
            rule__Const_decl__Group__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Const_decl__Group__1_in_rule__Const_decl__Group__019601);
            rule__Const_decl__Group__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Const_decl__Group__0


    // $ANTLR start rule__Const_decl__Group__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9594:1: rule__Const_decl__Group__0__Impl : ( 'const' ) ;
    public final void rule__Const_decl__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9598:1: ( ( 'const' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9599:1: ( 'const' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9599:1: ( 'const' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9600:1: 'const'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getConst_declAccess().getConstKeyword_0()); 
            }
            match(input,68,FollowSets000.FOLLOW_68_in_rule__Const_decl__Group__0__Impl19629); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getConst_declAccess().getConstKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Const_decl__Group__0__Impl


    // $ANTLR start rule__Const_decl__Group__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9613:1: rule__Const_decl__Group__1 : rule__Const_decl__Group__1__Impl rule__Const_decl__Group__2 ;
    public final void rule__Const_decl__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9617:1: ( rule__Const_decl__Group__1__Impl rule__Const_decl__Group__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9618:2: rule__Const_decl__Group__1__Impl rule__Const_decl__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Const_decl__Group__1__Impl_in_rule__Const_decl__Group__119660);
            rule__Const_decl__Group__1__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Const_decl__Group__2_in_rule__Const_decl__Group__119663);
            rule__Const_decl__Group__2();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Const_decl__Group__1


    // $ANTLR start rule__Const_decl__Group__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9625:1: rule__Const_decl__Group__1__Impl : ( ( rule__Const_decl__Alternatives_1 ) ) ;
    public final void rule__Const_decl__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9629:1: ( ( ( rule__Const_decl__Alternatives_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9630:1: ( ( rule__Const_decl__Alternatives_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9630:1: ( ( rule__Const_decl__Alternatives_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9631:1: ( rule__Const_decl__Alternatives_1 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getConst_declAccess().getAlternatives_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9632:1: ( rule__Const_decl__Alternatives_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9632:2: rule__Const_decl__Alternatives_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Const_decl__Alternatives_1_in_rule__Const_decl__Group__1__Impl19690);
            rule__Const_decl__Alternatives_1();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getConst_declAccess().getAlternatives_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Const_decl__Group__1__Impl


    // $ANTLR start rule__Const_decl__Group__2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9642:1: rule__Const_decl__Group__2 : rule__Const_decl__Group__2__Impl rule__Const_decl__Group__3 ;
    public final void rule__Const_decl__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9646:1: ( rule__Const_decl__Group__2__Impl rule__Const_decl__Group__3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9647:2: rule__Const_decl__Group__2__Impl rule__Const_decl__Group__3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Const_decl__Group__2__Impl_in_rule__Const_decl__Group__219720);
            rule__Const_decl__Group__2__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Const_decl__Group__3_in_rule__Const_decl__Group__219723);
            rule__Const_decl__Group__3();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Const_decl__Group__2


    // $ANTLR start rule__Const_decl__Group__2__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9654:1: rule__Const_decl__Group__2__Impl : ( ( rule__Const_decl__IdentifierAssignment_2 ) ) ;
    public final void rule__Const_decl__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9658:1: ( ( ( rule__Const_decl__IdentifierAssignment_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9659:1: ( ( rule__Const_decl__IdentifierAssignment_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9659:1: ( ( rule__Const_decl__IdentifierAssignment_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9660:1: ( rule__Const_decl__IdentifierAssignment_2 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getConst_declAccess().getIdentifierAssignment_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9661:1: ( rule__Const_decl__IdentifierAssignment_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9661:2: rule__Const_decl__IdentifierAssignment_2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Const_decl__IdentifierAssignment_2_in_rule__Const_decl__Group__2__Impl19750);
            rule__Const_decl__IdentifierAssignment_2();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getConst_declAccess().getIdentifierAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Const_decl__Group__2__Impl


    // $ANTLR start rule__Const_decl__Group__3
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9671:1: rule__Const_decl__Group__3 : rule__Const_decl__Group__3__Impl rule__Const_decl__Group__4 ;
    public final void rule__Const_decl__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9675:1: ( rule__Const_decl__Group__3__Impl rule__Const_decl__Group__4 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9676:2: rule__Const_decl__Group__3__Impl rule__Const_decl__Group__4
            {
            pushFollow(FollowSets000.FOLLOW_rule__Const_decl__Group__3__Impl_in_rule__Const_decl__Group__319780);
            rule__Const_decl__Group__3__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Const_decl__Group__4_in_rule__Const_decl__Group__319783);
            rule__Const_decl__Group__4();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Const_decl__Group__3


    // $ANTLR start rule__Const_decl__Group__3__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9683:1: rule__Const_decl__Group__3__Impl : ( '=' ) ;
    public final void rule__Const_decl__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9687:1: ( ( '=' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9688:1: ( '=' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9688:1: ( '=' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9689:1: '='
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getConst_declAccess().getEqualsSignKeyword_3()); 
            }
            match(input,69,FollowSets000.FOLLOW_69_in_rule__Const_decl__Group__3__Impl19811); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getConst_declAccess().getEqualsSignKeyword_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Const_decl__Group__3__Impl


    // $ANTLR start rule__Const_decl__Group__4
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9702:1: rule__Const_decl__Group__4 : rule__Const_decl__Group__4__Impl ;
    public final void rule__Const_decl__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9706:1: ( rule__Const_decl__Group__4__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9707:2: rule__Const_decl__Group__4__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Const_decl__Group__4__Impl_in_rule__Const_decl__Group__419842);
            rule__Const_decl__Group__4__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Const_decl__Group__4


    // $ANTLR start rule__Const_decl__Group__4__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9713:1: rule__Const_decl__Group__4__Impl : ( ( rule__Const_decl__ConstValueAssignment_4 ) ) ;
    public final void rule__Const_decl__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9717:1: ( ( ( rule__Const_decl__ConstValueAssignment_4 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9718:1: ( ( rule__Const_decl__ConstValueAssignment_4 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9718:1: ( ( rule__Const_decl__ConstValueAssignment_4 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9719:1: ( rule__Const_decl__ConstValueAssignment_4 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getConst_declAccess().getConstValueAssignment_4()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9720:1: ( rule__Const_decl__ConstValueAssignment_4 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9720:2: rule__Const_decl__ConstValueAssignment_4
            {
            pushFollow(FollowSets000.FOLLOW_rule__Const_decl__ConstValueAssignment_4_in_rule__Const_decl__Group__4__Impl19869);
            rule__Const_decl__ConstValueAssignment_4();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getConst_declAccess().getConstValueAssignment_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Const_decl__Group__4__Impl


    // $ANTLR start rule__Sequence_type__Group__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9740:1: rule__Sequence_type__Group__0 : rule__Sequence_type__Group__0__Impl rule__Sequence_type__Group__1 ;
    public final void rule__Sequence_type__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9744:1: ( rule__Sequence_type__Group__0__Impl rule__Sequence_type__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9745:2: rule__Sequence_type__Group__0__Impl rule__Sequence_type__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Sequence_type__Group__0__Impl_in_rule__Sequence_type__Group__019909);
            rule__Sequence_type__Group__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Sequence_type__Group__1_in_rule__Sequence_type__Group__019912);
            rule__Sequence_type__Group__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Sequence_type__Group__0


    // $ANTLR start rule__Sequence_type__Group__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9752:1: rule__Sequence_type__Group__0__Impl : ( 'sequence' ) ;
    public final void rule__Sequence_type__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9756:1: ( ( 'sequence' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9757:1: ( 'sequence' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9757:1: ( 'sequence' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9758:1: 'sequence'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getSequence_typeAccess().getSequenceKeyword_0()); 
            }
            match(input,70,FollowSets000.FOLLOW_70_in_rule__Sequence_type__Group__0__Impl19940); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getSequence_typeAccess().getSequenceKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Sequence_type__Group__0__Impl


    // $ANTLR start rule__Sequence_type__Group__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9771:1: rule__Sequence_type__Group__1 : rule__Sequence_type__Group__1__Impl rule__Sequence_type__Group__2 ;
    public final void rule__Sequence_type__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9775:1: ( rule__Sequence_type__Group__1__Impl rule__Sequence_type__Group__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9776:2: rule__Sequence_type__Group__1__Impl rule__Sequence_type__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Sequence_type__Group__1__Impl_in_rule__Sequence_type__Group__119971);
            rule__Sequence_type__Group__1__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Sequence_type__Group__2_in_rule__Sequence_type__Group__119974);
            rule__Sequence_type__Group__2();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Sequence_type__Group__1


    // $ANTLR start rule__Sequence_type__Group__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9783:1: rule__Sequence_type__Group__1__Impl : ( '<' ) ;
    public final void rule__Sequence_type__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9787:1: ( ( '<' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9788:1: ( '<' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9788:1: ( '<' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9789:1: '<'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getSequence_typeAccess().getLessThanSignKeyword_1()); 
            }
            match(input,71,FollowSets000.FOLLOW_71_in_rule__Sequence_type__Group__1__Impl20002); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getSequence_typeAccess().getLessThanSignKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Sequence_type__Group__1__Impl


    // $ANTLR start rule__Sequence_type__Group__2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9802:1: rule__Sequence_type__Group__2 : rule__Sequence_type__Group__2__Impl rule__Sequence_type__Group__3 ;
    public final void rule__Sequence_type__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9806:1: ( rule__Sequence_type__Group__2__Impl rule__Sequence_type__Group__3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9807:2: rule__Sequence_type__Group__2__Impl rule__Sequence_type__Group__3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Sequence_type__Group__2__Impl_in_rule__Sequence_type__Group__220033);
            rule__Sequence_type__Group__2__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Sequence_type__Group__3_in_rule__Sequence_type__Group__220036);
            rule__Sequence_type__Group__3();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Sequence_type__Group__2


    // $ANTLR start rule__Sequence_type__Group__2__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9814:1: rule__Sequence_type__Group__2__Impl : ( ( rule__Sequence_type__Alternatives_2 ) ) ;
    public final void rule__Sequence_type__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9818:1: ( ( ( rule__Sequence_type__Alternatives_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9819:1: ( ( rule__Sequence_type__Alternatives_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9819:1: ( ( rule__Sequence_type__Alternatives_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9820:1: ( rule__Sequence_type__Alternatives_2 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getSequence_typeAccess().getAlternatives_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9821:1: ( rule__Sequence_type__Alternatives_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9821:2: rule__Sequence_type__Alternatives_2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Sequence_type__Alternatives_2_in_rule__Sequence_type__Group__2__Impl20063);
            rule__Sequence_type__Alternatives_2();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getSequence_typeAccess().getAlternatives_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Sequence_type__Group__2__Impl


    // $ANTLR start rule__Sequence_type__Group__3
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9831:1: rule__Sequence_type__Group__3 : rule__Sequence_type__Group__3__Impl rule__Sequence_type__Group__4 ;
    public final void rule__Sequence_type__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9835:1: ( rule__Sequence_type__Group__3__Impl rule__Sequence_type__Group__4 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9836:2: rule__Sequence_type__Group__3__Impl rule__Sequence_type__Group__4
            {
            pushFollow(FollowSets000.FOLLOW_rule__Sequence_type__Group__3__Impl_in_rule__Sequence_type__Group__320093);
            rule__Sequence_type__Group__3__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Sequence_type__Group__4_in_rule__Sequence_type__Group__320096);
            rule__Sequence_type__Group__4();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Sequence_type__Group__3


    // $ANTLR start rule__Sequence_type__Group__3__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9843:1: rule__Sequence_type__Group__3__Impl : ( ( rule__Sequence_type__Group_3__0 )? ) ;
    public final void rule__Sequence_type__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9847:1: ( ( ( rule__Sequence_type__Group_3__0 )? ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9848:1: ( ( rule__Sequence_type__Group_3__0 )? )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9848:1: ( ( rule__Sequence_type__Group_3__0 )? )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9849:1: ( rule__Sequence_type__Group_3__0 )?
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getSequence_typeAccess().getGroup_3()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9850:1: ( rule__Sequence_type__Group_3__0 )?
            int alt76=2;
            int LA76_0 = input.LA(1);

            if ( (LA76_0==49) ) {
                alt76=1;
            }
            switch (alt76) {
                case 1 :
                    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9850:2: rule__Sequence_type__Group_3__0
                    {
                    pushFollow(FollowSets000.FOLLOW_rule__Sequence_type__Group_3__0_in_rule__Sequence_type__Group__3__Impl20123);
                    rule__Sequence_type__Group_3__0();
                    _fsp--;
                    if (failed) return ;

                    }
                    break;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getSequence_typeAccess().getGroup_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Sequence_type__Group__3__Impl


    // $ANTLR start rule__Sequence_type__Group__4
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9860:1: rule__Sequence_type__Group__4 : rule__Sequence_type__Group__4__Impl ;
    public final void rule__Sequence_type__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9864:1: ( rule__Sequence_type__Group__4__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9865:2: rule__Sequence_type__Group__4__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Sequence_type__Group__4__Impl_in_rule__Sequence_type__Group__420154);
            rule__Sequence_type__Group__4__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Sequence_type__Group__4


    // $ANTLR start rule__Sequence_type__Group__4__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9871:1: rule__Sequence_type__Group__4__Impl : ( '>' ) ;
    public final void rule__Sequence_type__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9875:1: ( ( '>' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9876:1: ( '>' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9876:1: ( '>' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9877:1: '>'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getSequence_typeAccess().getGreaterThanSignKeyword_4()); 
            }
            match(input,72,FollowSets000.FOLLOW_72_in_rule__Sequence_type__Group__4__Impl20182); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getSequence_typeAccess().getGreaterThanSignKeyword_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Sequence_type__Group__4__Impl


    // $ANTLR start rule__Sequence_type__Group_3__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9900:1: rule__Sequence_type__Group_3__0 : rule__Sequence_type__Group_3__0__Impl rule__Sequence_type__Group_3__1 ;
    public final void rule__Sequence_type__Group_3__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9904:1: ( rule__Sequence_type__Group_3__0__Impl rule__Sequence_type__Group_3__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9905:2: rule__Sequence_type__Group_3__0__Impl rule__Sequence_type__Group_3__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Sequence_type__Group_3__0__Impl_in_rule__Sequence_type__Group_3__020223);
            rule__Sequence_type__Group_3__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Sequence_type__Group_3__1_in_rule__Sequence_type__Group_3__020226);
            rule__Sequence_type__Group_3__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Sequence_type__Group_3__0


    // $ANTLR start rule__Sequence_type__Group_3__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9912:1: rule__Sequence_type__Group_3__0__Impl : ( ',' ) ;
    public final void rule__Sequence_type__Group_3__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9916:1: ( ( ',' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9917:1: ( ',' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9917:1: ( ',' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9918:1: ','
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getSequence_typeAccess().getCommaKeyword_3_0()); 
            }
            match(input,49,FollowSets000.FOLLOW_49_in_rule__Sequence_type__Group_3__0__Impl20254); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getSequence_typeAccess().getCommaKeyword_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Sequence_type__Group_3__0__Impl


    // $ANTLR start rule__Sequence_type__Group_3__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9931:1: rule__Sequence_type__Group_3__1 : rule__Sequence_type__Group_3__1__Impl ;
    public final void rule__Sequence_type__Group_3__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9935:1: ( rule__Sequence_type__Group_3__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9936:2: rule__Sequence_type__Group_3__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Sequence_type__Group_3__1__Impl_in_rule__Sequence_type__Group_3__120285);
            rule__Sequence_type__Group_3__1__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Sequence_type__Group_3__1


    // $ANTLR start rule__Sequence_type__Group_3__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9942:1: rule__Sequence_type__Group_3__1__Impl : ( ( rule__Sequence_type__BoundAssignment_3_1 ) ) ;
    public final void rule__Sequence_type__Group_3__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9946:1: ( ( ( rule__Sequence_type__BoundAssignment_3_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9947:1: ( ( rule__Sequence_type__BoundAssignment_3_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9947:1: ( ( rule__Sequence_type__BoundAssignment_3_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9948:1: ( rule__Sequence_type__BoundAssignment_3_1 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getSequence_typeAccess().getBoundAssignment_3_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9949:1: ( rule__Sequence_type__BoundAssignment_3_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9949:2: rule__Sequence_type__BoundAssignment_3_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Sequence_type__BoundAssignment_3_1_in_rule__Sequence_type__Group_3__1__Impl20312);
            rule__Sequence_type__BoundAssignment_3_1();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getSequence_typeAccess().getBoundAssignment_3_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Sequence_type__Group_3__1__Impl


    // $ANTLR start rule__Stringdef_type__Group__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9963:1: rule__Stringdef_type__Group__0 : rule__Stringdef_type__Group__0__Impl rule__Stringdef_type__Group__1 ;
    public final void rule__Stringdef_type__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9967:1: ( rule__Stringdef_type__Group__0__Impl rule__Stringdef_type__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9968:2: rule__Stringdef_type__Group__0__Impl rule__Stringdef_type__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Stringdef_type__Group__0__Impl_in_rule__Stringdef_type__Group__020346);
            rule__Stringdef_type__Group__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Stringdef_type__Group__1_in_rule__Stringdef_type__Group__020349);
            rule__Stringdef_type__Group__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Stringdef_type__Group__0


    // $ANTLR start rule__Stringdef_type__Group__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9975:1: rule__Stringdef_type__Group__0__Impl : ( 'string' ) ;
    public final void rule__Stringdef_type__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9979:1: ( ( 'string' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9980:1: ( 'string' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9980:1: ( 'string' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9981:1: 'string'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getStringdef_typeAccess().getStringKeyword_0()); 
            }
            match(input,22,FollowSets000.FOLLOW_22_in_rule__Stringdef_type__Group__0__Impl20377); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getStringdef_typeAccess().getStringKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Stringdef_type__Group__0__Impl


    // $ANTLR start rule__Stringdef_type__Group__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9994:1: rule__Stringdef_type__Group__1 : rule__Stringdef_type__Group__1__Impl rule__Stringdef_type__Group__2 ;
    public final void rule__Stringdef_type__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9998:1: ( rule__Stringdef_type__Group__1__Impl rule__Stringdef_type__Group__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:9999:2: rule__Stringdef_type__Group__1__Impl rule__Stringdef_type__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Stringdef_type__Group__1__Impl_in_rule__Stringdef_type__Group__120408);
            rule__Stringdef_type__Group__1__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Stringdef_type__Group__2_in_rule__Stringdef_type__Group__120411);
            rule__Stringdef_type__Group__2();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Stringdef_type__Group__1


    // $ANTLR start rule__Stringdef_type__Group__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10006:1: rule__Stringdef_type__Group__1__Impl : ( '<' ) ;
    public final void rule__Stringdef_type__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10010:1: ( ( '<' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10011:1: ( '<' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10011:1: ( '<' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10012:1: '<'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getStringdef_typeAccess().getLessThanSignKeyword_1()); 
            }
            match(input,71,FollowSets000.FOLLOW_71_in_rule__Stringdef_type__Group__1__Impl20439); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getStringdef_typeAccess().getLessThanSignKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Stringdef_type__Group__1__Impl


    // $ANTLR start rule__Stringdef_type__Group__2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10025:1: rule__Stringdef_type__Group__2 : rule__Stringdef_type__Group__2__Impl rule__Stringdef_type__Group__3 ;
    public final void rule__Stringdef_type__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10029:1: ( rule__Stringdef_type__Group__2__Impl rule__Stringdef_type__Group__3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10030:2: rule__Stringdef_type__Group__2__Impl rule__Stringdef_type__Group__3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Stringdef_type__Group__2__Impl_in_rule__Stringdef_type__Group__220470);
            rule__Stringdef_type__Group__2__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Stringdef_type__Group__3_in_rule__Stringdef_type__Group__220473);
            rule__Stringdef_type__Group__3();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Stringdef_type__Group__2


    // $ANTLR start rule__Stringdef_type__Group__2__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10037:1: rule__Stringdef_type__Group__2__Impl : ( ( rule__Stringdef_type__BoundAssignment_2 ) ) ;
    public final void rule__Stringdef_type__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10041:1: ( ( ( rule__Stringdef_type__BoundAssignment_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10042:1: ( ( rule__Stringdef_type__BoundAssignment_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10042:1: ( ( rule__Stringdef_type__BoundAssignment_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10043:1: ( rule__Stringdef_type__BoundAssignment_2 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getStringdef_typeAccess().getBoundAssignment_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10044:1: ( rule__Stringdef_type__BoundAssignment_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10044:2: rule__Stringdef_type__BoundAssignment_2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Stringdef_type__BoundAssignment_2_in_rule__Stringdef_type__Group__2__Impl20500);
            rule__Stringdef_type__BoundAssignment_2();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getStringdef_typeAccess().getBoundAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Stringdef_type__Group__2__Impl


    // $ANTLR start rule__Stringdef_type__Group__3
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10054:1: rule__Stringdef_type__Group__3 : rule__Stringdef_type__Group__3__Impl ;
    public final void rule__Stringdef_type__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10058:1: ( rule__Stringdef_type__Group__3__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10059:2: rule__Stringdef_type__Group__3__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Stringdef_type__Group__3__Impl_in_rule__Stringdef_type__Group__320530);
            rule__Stringdef_type__Group__3__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Stringdef_type__Group__3


    // $ANTLR start rule__Stringdef_type__Group__3__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10065:1: rule__Stringdef_type__Group__3__Impl : ( '>' ) ;
    public final void rule__Stringdef_type__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10069:1: ( ( '>' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10070:1: ( '>' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10070:1: ( '>' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10071:1: '>'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getStringdef_typeAccess().getGreaterThanSignKeyword_3()); 
            }
            match(input,72,FollowSets000.FOLLOW_72_in_rule__Stringdef_type__Group__3__Impl20558); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getStringdef_typeAccess().getGreaterThanSignKeyword_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Stringdef_type__Group__3__Impl


    // $ANTLR start rule__Wide_stringdef_type__Group__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10092:1: rule__Wide_stringdef_type__Group__0 : rule__Wide_stringdef_type__Group__0__Impl rule__Wide_stringdef_type__Group__1 ;
    public final void rule__Wide_stringdef_type__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10096:1: ( rule__Wide_stringdef_type__Group__0__Impl rule__Wide_stringdef_type__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10097:2: rule__Wide_stringdef_type__Group__0__Impl rule__Wide_stringdef_type__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Wide_stringdef_type__Group__0__Impl_in_rule__Wide_stringdef_type__Group__020597);
            rule__Wide_stringdef_type__Group__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Wide_stringdef_type__Group__1_in_rule__Wide_stringdef_type__Group__020600);
            rule__Wide_stringdef_type__Group__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Wide_stringdef_type__Group__0


    // $ANTLR start rule__Wide_stringdef_type__Group__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10104:1: rule__Wide_stringdef_type__Group__0__Impl : ( 'wstring' ) ;
    public final void rule__Wide_stringdef_type__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10108:1: ( ( 'wstring' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10109:1: ( 'wstring' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10109:1: ( 'wstring' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10110:1: 'wstring'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getWide_stringdef_typeAccess().getWstringKeyword_0()); 
            }
            match(input,23,FollowSets000.FOLLOW_23_in_rule__Wide_stringdef_type__Group__0__Impl20628); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getWide_stringdef_typeAccess().getWstringKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Wide_stringdef_type__Group__0__Impl


    // $ANTLR start rule__Wide_stringdef_type__Group__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10123:1: rule__Wide_stringdef_type__Group__1 : rule__Wide_stringdef_type__Group__1__Impl rule__Wide_stringdef_type__Group__2 ;
    public final void rule__Wide_stringdef_type__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10127:1: ( rule__Wide_stringdef_type__Group__1__Impl rule__Wide_stringdef_type__Group__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10128:2: rule__Wide_stringdef_type__Group__1__Impl rule__Wide_stringdef_type__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Wide_stringdef_type__Group__1__Impl_in_rule__Wide_stringdef_type__Group__120659);
            rule__Wide_stringdef_type__Group__1__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Wide_stringdef_type__Group__2_in_rule__Wide_stringdef_type__Group__120662);
            rule__Wide_stringdef_type__Group__2();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Wide_stringdef_type__Group__1


    // $ANTLR start rule__Wide_stringdef_type__Group__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10135:1: rule__Wide_stringdef_type__Group__1__Impl : ( '<' ) ;
    public final void rule__Wide_stringdef_type__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10139:1: ( ( '<' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10140:1: ( '<' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10140:1: ( '<' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10141:1: '<'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getWide_stringdef_typeAccess().getLessThanSignKeyword_1()); 
            }
            match(input,71,FollowSets000.FOLLOW_71_in_rule__Wide_stringdef_type__Group__1__Impl20690); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getWide_stringdef_typeAccess().getLessThanSignKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Wide_stringdef_type__Group__1__Impl


    // $ANTLR start rule__Wide_stringdef_type__Group__2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10154:1: rule__Wide_stringdef_type__Group__2 : rule__Wide_stringdef_type__Group__2__Impl rule__Wide_stringdef_type__Group__3 ;
    public final void rule__Wide_stringdef_type__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10158:1: ( rule__Wide_stringdef_type__Group__2__Impl rule__Wide_stringdef_type__Group__3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10159:2: rule__Wide_stringdef_type__Group__2__Impl rule__Wide_stringdef_type__Group__3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Wide_stringdef_type__Group__2__Impl_in_rule__Wide_stringdef_type__Group__220721);
            rule__Wide_stringdef_type__Group__2__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Wide_stringdef_type__Group__3_in_rule__Wide_stringdef_type__Group__220724);
            rule__Wide_stringdef_type__Group__3();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Wide_stringdef_type__Group__2


    // $ANTLR start rule__Wide_stringdef_type__Group__2__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10166:1: rule__Wide_stringdef_type__Group__2__Impl : ( ( rule__Wide_stringdef_type__BoundAssignment_2 ) ) ;
    public final void rule__Wide_stringdef_type__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10170:1: ( ( ( rule__Wide_stringdef_type__BoundAssignment_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10171:1: ( ( rule__Wide_stringdef_type__BoundAssignment_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10171:1: ( ( rule__Wide_stringdef_type__BoundAssignment_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10172:1: ( rule__Wide_stringdef_type__BoundAssignment_2 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getWide_stringdef_typeAccess().getBoundAssignment_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10173:1: ( rule__Wide_stringdef_type__BoundAssignment_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10173:2: rule__Wide_stringdef_type__BoundAssignment_2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Wide_stringdef_type__BoundAssignment_2_in_rule__Wide_stringdef_type__Group__2__Impl20751);
            rule__Wide_stringdef_type__BoundAssignment_2();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getWide_stringdef_typeAccess().getBoundAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Wide_stringdef_type__Group__2__Impl


    // $ANTLR start rule__Wide_stringdef_type__Group__3
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10183:1: rule__Wide_stringdef_type__Group__3 : rule__Wide_stringdef_type__Group__3__Impl ;
    public final void rule__Wide_stringdef_type__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10187:1: ( rule__Wide_stringdef_type__Group__3__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10188:2: rule__Wide_stringdef_type__Group__3__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Wide_stringdef_type__Group__3__Impl_in_rule__Wide_stringdef_type__Group__320781);
            rule__Wide_stringdef_type__Group__3__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Wide_stringdef_type__Group__3


    // $ANTLR start rule__Wide_stringdef_type__Group__3__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10194:1: rule__Wide_stringdef_type__Group__3__Impl : ( '>' ) ;
    public final void rule__Wide_stringdef_type__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10198:1: ( ( '>' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10199:1: ( '>' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10199:1: ( '>' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10200:1: '>'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getWide_stringdef_typeAccess().getGreaterThanSignKeyword_3()); 
            }
            match(input,72,FollowSets000.FOLLOW_72_in_rule__Wide_stringdef_type__Group__3__Impl20809); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getWide_stringdef_typeAccess().getGreaterThanSignKeyword_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Wide_stringdef_type__Group__3__Impl


    // $ANTLR start rule__Fixed_pt_type__Group__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10221:1: rule__Fixed_pt_type__Group__0 : rule__Fixed_pt_type__Group__0__Impl rule__Fixed_pt_type__Group__1 ;
    public final void rule__Fixed_pt_type__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10225:1: ( rule__Fixed_pt_type__Group__0__Impl rule__Fixed_pt_type__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10226:2: rule__Fixed_pt_type__Group__0__Impl rule__Fixed_pt_type__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Fixed_pt_type__Group__0__Impl_in_rule__Fixed_pt_type__Group__020848);
            rule__Fixed_pt_type__Group__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Fixed_pt_type__Group__1_in_rule__Fixed_pt_type__Group__020851);
            rule__Fixed_pt_type__Group__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Fixed_pt_type__Group__0


    // $ANTLR start rule__Fixed_pt_type__Group__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10233:1: rule__Fixed_pt_type__Group__0__Impl : ( 'fixed' ) ;
    public final void rule__Fixed_pt_type__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10237:1: ( ( 'fixed' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10238:1: ( 'fixed' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10238:1: ( 'fixed' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10239:1: 'fixed'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getFixed_pt_typeAccess().getFixedKeyword_0()); 
            }
            match(input,73,FollowSets000.FOLLOW_73_in_rule__Fixed_pt_type__Group__0__Impl20879); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getFixed_pt_typeAccess().getFixedKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Fixed_pt_type__Group__0__Impl


    // $ANTLR start rule__Fixed_pt_type__Group__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10252:1: rule__Fixed_pt_type__Group__1 : rule__Fixed_pt_type__Group__1__Impl rule__Fixed_pt_type__Group__2 ;
    public final void rule__Fixed_pt_type__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10256:1: ( rule__Fixed_pt_type__Group__1__Impl rule__Fixed_pt_type__Group__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10257:2: rule__Fixed_pt_type__Group__1__Impl rule__Fixed_pt_type__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Fixed_pt_type__Group__1__Impl_in_rule__Fixed_pt_type__Group__120910);
            rule__Fixed_pt_type__Group__1__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Fixed_pt_type__Group__2_in_rule__Fixed_pt_type__Group__120913);
            rule__Fixed_pt_type__Group__2();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Fixed_pt_type__Group__1


    // $ANTLR start rule__Fixed_pt_type__Group__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10264:1: rule__Fixed_pt_type__Group__1__Impl : ( '<' ) ;
    public final void rule__Fixed_pt_type__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10268:1: ( ( '<' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10269:1: ( '<' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10269:1: ( '<' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10270:1: '<'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getFixed_pt_typeAccess().getLessThanSignKeyword_1()); 
            }
            match(input,71,FollowSets000.FOLLOW_71_in_rule__Fixed_pt_type__Group__1__Impl20941); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getFixed_pt_typeAccess().getLessThanSignKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Fixed_pt_type__Group__1__Impl


    // $ANTLR start rule__Fixed_pt_type__Group__2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10283:1: rule__Fixed_pt_type__Group__2 : rule__Fixed_pt_type__Group__2__Impl rule__Fixed_pt_type__Group__3 ;
    public final void rule__Fixed_pt_type__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10287:1: ( rule__Fixed_pt_type__Group__2__Impl rule__Fixed_pt_type__Group__3 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10288:2: rule__Fixed_pt_type__Group__2__Impl rule__Fixed_pt_type__Group__3
            {
            pushFollow(FollowSets000.FOLLOW_rule__Fixed_pt_type__Group__2__Impl_in_rule__Fixed_pt_type__Group__220972);
            rule__Fixed_pt_type__Group__2__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Fixed_pt_type__Group__3_in_rule__Fixed_pt_type__Group__220975);
            rule__Fixed_pt_type__Group__3();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Fixed_pt_type__Group__2


    // $ANTLR start rule__Fixed_pt_type__Group__2__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10295:1: rule__Fixed_pt_type__Group__2__Impl : ( ( rule__Fixed_pt_type__DigitsAssignment_2 ) ) ;
    public final void rule__Fixed_pt_type__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10299:1: ( ( ( rule__Fixed_pt_type__DigitsAssignment_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10300:1: ( ( rule__Fixed_pt_type__DigitsAssignment_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10300:1: ( ( rule__Fixed_pt_type__DigitsAssignment_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10301:1: ( rule__Fixed_pt_type__DigitsAssignment_2 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getFixed_pt_typeAccess().getDigitsAssignment_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10302:1: ( rule__Fixed_pt_type__DigitsAssignment_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10302:2: rule__Fixed_pt_type__DigitsAssignment_2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Fixed_pt_type__DigitsAssignment_2_in_rule__Fixed_pt_type__Group__2__Impl21002);
            rule__Fixed_pt_type__DigitsAssignment_2();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getFixed_pt_typeAccess().getDigitsAssignment_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Fixed_pt_type__Group__2__Impl


    // $ANTLR start rule__Fixed_pt_type__Group__3
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10312:1: rule__Fixed_pt_type__Group__3 : rule__Fixed_pt_type__Group__3__Impl rule__Fixed_pt_type__Group__4 ;
    public final void rule__Fixed_pt_type__Group__3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10316:1: ( rule__Fixed_pt_type__Group__3__Impl rule__Fixed_pt_type__Group__4 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10317:2: rule__Fixed_pt_type__Group__3__Impl rule__Fixed_pt_type__Group__4
            {
            pushFollow(FollowSets000.FOLLOW_rule__Fixed_pt_type__Group__3__Impl_in_rule__Fixed_pt_type__Group__321032);
            rule__Fixed_pt_type__Group__3__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Fixed_pt_type__Group__4_in_rule__Fixed_pt_type__Group__321035);
            rule__Fixed_pt_type__Group__4();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Fixed_pt_type__Group__3


    // $ANTLR start rule__Fixed_pt_type__Group__3__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10324:1: rule__Fixed_pt_type__Group__3__Impl : ( ',' ) ;
    public final void rule__Fixed_pt_type__Group__3__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10328:1: ( ( ',' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10329:1: ( ',' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10329:1: ( ',' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10330:1: ','
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getFixed_pt_typeAccess().getCommaKeyword_3()); 
            }
            match(input,49,FollowSets000.FOLLOW_49_in_rule__Fixed_pt_type__Group__3__Impl21063); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getFixed_pt_typeAccess().getCommaKeyword_3()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Fixed_pt_type__Group__3__Impl


    // $ANTLR start rule__Fixed_pt_type__Group__4
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10343:1: rule__Fixed_pt_type__Group__4 : rule__Fixed_pt_type__Group__4__Impl rule__Fixed_pt_type__Group__5 ;
    public final void rule__Fixed_pt_type__Group__4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10347:1: ( rule__Fixed_pt_type__Group__4__Impl rule__Fixed_pt_type__Group__5 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10348:2: rule__Fixed_pt_type__Group__4__Impl rule__Fixed_pt_type__Group__5
            {
            pushFollow(FollowSets000.FOLLOW_rule__Fixed_pt_type__Group__4__Impl_in_rule__Fixed_pt_type__Group__421094);
            rule__Fixed_pt_type__Group__4__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Fixed_pt_type__Group__5_in_rule__Fixed_pt_type__Group__421097);
            rule__Fixed_pt_type__Group__5();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Fixed_pt_type__Group__4


    // $ANTLR start rule__Fixed_pt_type__Group__4__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10355:1: rule__Fixed_pt_type__Group__4__Impl : ( ( rule__Fixed_pt_type__ScaleAssignment_4 ) ) ;
    public final void rule__Fixed_pt_type__Group__4__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10359:1: ( ( ( rule__Fixed_pt_type__ScaleAssignment_4 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10360:1: ( ( rule__Fixed_pt_type__ScaleAssignment_4 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10360:1: ( ( rule__Fixed_pt_type__ScaleAssignment_4 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10361:1: ( rule__Fixed_pt_type__ScaleAssignment_4 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getFixed_pt_typeAccess().getScaleAssignment_4()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10362:1: ( rule__Fixed_pt_type__ScaleAssignment_4 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10362:2: rule__Fixed_pt_type__ScaleAssignment_4
            {
            pushFollow(FollowSets000.FOLLOW_rule__Fixed_pt_type__ScaleAssignment_4_in_rule__Fixed_pt_type__Group__4__Impl21124);
            rule__Fixed_pt_type__ScaleAssignment_4();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getFixed_pt_typeAccess().getScaleAssignment_4()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Fixed_pt_type__Group__4__Impl


    // $ANTLR start rule__Fixed_pt_type__Group__5
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10372:1: rule__Fixed_pt_type__Group__5 : rule__Fixed_pt_type__Group__5__Impl ;
    public final void rule__Fixed_pt_type__Group__5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10376:1: ( rule__Fixed_pt_type__Group__5__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10377:2: rule__Fixed_pt_type__Group__5__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Fixed_pt_type__Group__5__Impl_in_rule__Fixed_pt_type__Group__521154);
            rule__Fixed_pt_type__Group__5__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Fixed_pt_type__Group__5


    // $ANTLR start rule__Fixed_pt_type__Group__5__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10383:1: rule__Fixed_pt_type__Group__5__Impl : ( '>' ) ;
    public final void rule__Fixed_pt_type__Group__5__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10387:1: ( ( '>' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10388:1: ( '>' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10388:1: ( '>' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10389:1: '>'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getFixed_pt_typeAccess().getGreaterThanSignKeyword_5()); 
            }
            match(input,72,FollowSets000.FOLLOW_72_in_rule__Fixed_pt_type__Group__5__Impl21182); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getFixed_pt_typeAccess().getGreaterThanSignKeyword_5()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Fixed_pt_type__Group__5__Impl


    // $ANTLR start rule__Longdouble_type__Group__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10414:1: rule__Longdouble_type__Group__0 : rule__Longdouble_type__Group__0__Impl rule__Longdouble_type__Group__1 ;
    public final void rule__Longdouble_type__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10418:1: ( rule__Longdouble_type__Group__0__Impl rule__Longdouble_type__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10419:2: rule__Longdouble_type__Group__0__Impl rule__Longdouble_type__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Longdouble_type__Group__0__Impl_in_rule__Longdouble_type__Group__021225);
            rule__Longdouble_type__Group__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Longdouble_type__Group__1_in_rule__Longdouble_type__Group__021228);
            rule__Longdouble_type__Group__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Longdouble_type__Group__0


    // $ANTLR start rule__Longdouble_type__Group__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10426:1: rule__Longdouble_type__Group__0__Impl : ( 'long' ) ;
    public final void rule__Longdouble_type__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10430:1: ( ( 'long' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10431:1: ( 'long' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10431:1: ( 'long' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10432:1: 'long'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getLongdouble_typeAccess().getLongKeyword_0()); 
            }
            match(input,19,FollowSets000.FOLLOW_19_in_rule__Longdouble_type__Group__0__Impl21256); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getLongdouble_typeAccess().getLongKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Longdouble_type__Group__0__Impl


    // $ANTLR start rule__Longdouble_type__Group__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10445:1: rule__Longdouble_type__Group__1 : rule__Longdouble_type__Group__1__Impl ;
    public final void rule__Longdouble_type__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10449:1: ( rule__Longdouble_type__Group__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10450:2: rule__Longdouble_type__Group__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Longdouble_type__Group__1__Impl_in_rule__Longdouble_type__Group__121287);
            rule__Longdouble_type__Group__1__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Longdouble_type__Group__1


    // $ANTLR start rule__Longdouble_type__Group__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10456:1: rule__Longdouble_type__Group__1__Impl : ( 'double' ) ;
    public final void rule__Longdouble_type__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10460:1: ( ( 'double' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10461:1: ( 'double' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10461:1: ( 'double' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10462:1: 'double'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getLongdouble_typeAccess().getDoubleKeyword_1()); 
            }
            match(input,17,FollowSets000.FOLLOW_17_in_rule__Longdouble_type__Group__1__Impl21315); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getLongdouble_typeAccess().getDoubleKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Longdouble_type__Group__1__Impl


    // $ANTLR start rule__Longlong_type__Group__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10479:1: rule__Longlong_type__Group__0 : rule__Longlong_type__Group__0__Impl rule__Longlong_type__Group__1 ;
    public final void rule__Longlong_type__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10483:1: ( rule__Longlong_type__Group__0__Impl rule__Longlong_type__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10484:2: rule__Longlong_type__Group__0__Impl rule__Longlong_type__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Longlong_type__Group__0__Impl_in_rule__Longlong_type__Group__021350);
            rule__Longlong_type__Group__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Longlong_type__Group__1_in_rule__Longlong_type__Group__021353);
            rule__Longlong_type__Group__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Longlong_type__Group__0


    // $ANTLR start rule__Longlong_type__Group__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10491:1: rule__Longlong_type__Group__0__Impl : ( 'long' ) ;
    public final void rule__Longlong_type__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10495:1: ( ( 'long' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10496:1: ( 'long' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10496:1: ( 'long' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10497:1: 'long'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getLonglong_typeAccess().getLongKeyword_0()); 
            }
            match(input,19,FollowSets000.FOLLOW_19_in_rule__Longlong_type__Group__0__Impl21381); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getLonglong_typeAccess().getLongKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Longlong_type__Group__0__Impl


    // $ANTLR start rule__Longlong_type__Group__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10510:1: rule__Longlong_type__Group__1 : rule__Longlong_type__Group__1__Impl ;
    public final void rule__Longlong_type__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10514:1: ( rule__Longlong_type__Group__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10515:2: rule__Longlong_type__Group__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Longlong_type__Group__1__Impl_in_rule__Longlong_type__Group__121412);
            rule__Longlong_type__Group__1__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Longlong_type__Group__1


    // $ANTLR start rule__Longlong_type__Group__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10521:1: rule__Longlong_type__Group__1__Impl : ( 'long' ) ;
    public final void rule__Longlong_type__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10525:1: ( ( 'long' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10526:1: ( 'long' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10526:1: ( 'long' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10527:1: 'long'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getLonglong_typeAccess().getLongKeyword_1()); 
            }
            match(input,19,FollowSets000.FOLLOW_19_in_rule__Longlong_type__Group__1__Impl21440); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getLonglong_typeAccess().getLongKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Longlong_type__Group__1__Impl


    // $ANTLR start rule__Ushort_type__Group__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10544:1: rule__Ushort_type__Group__0 : rule__Ushort_type__Group__0__Impl rule__Ushort_type__Group__1 ;
    public final void rule__Ushort_type__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10548:1: ( rule__Ushort_type__Group__0__Impl rule__Ushort_type__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10549:2: rule__Ushort_type__Group__0__Impl rule__Ushort_type__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Ushort_type__Group__0__Impl_in_rule__Ushort_type__Group__021475);
            rule__Ushort_type__Group__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Ushort_type__Group__1_in_rule__Ushort_type__Group__021478);
            rule__Ushort_type__Group__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Ushort_type__Group__0


    // $ANTLR start rule__Ushort_type__Group__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10556:1: rule__Ushort_type__Group__0__Impl : ( 'unsigned' ) ;
    public final void rule__Ushort_type__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10560:1: ( ( 'unsigned' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10561:1: ( 'unsigned' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10561:1: ( 'unsigned' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10562:1: 'unsigned'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getUshort_typeAccess().getUnsignedKeyword_0()); 
            }
            match(input,74,FollowSets000.FOLLOW_74_in_rule__Ushort_type__Group__0__Impl21506); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getUshort_typeAccess().getUnsignedKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Ushort_type__Group__0__Impl


    // $ANTLR start rule__Ushort_type__Group__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10575:1: rule__Ushort_type__Group__1 : rule__Ushort_type__Group__1__Impl ;
    public final void rule__Ushort_type__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10579:1: ( rule__Ushort_type__Group__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10580:2: rule__Ushort_type__Group__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Ushort_type__Group__1__Impl_in_rule__Ushort_type__Group__121537);
            rule__Ushort_type__Group__1__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Ushort_type__Group__1


    // $ANTLR start rule__Ushort_type__Group__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10586:1: rule__Ushort_type__Group__1__Impl : ( 'short' ) ;
    public final void rule__Ushort_type__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10590:1: ( ( 'short' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10591:1: ( 'short' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10591:1: ( 'short' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10592:1: 'short'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getUshort_typeAccess().getShortKeyword_1()); 
            }
            match(input,18,FollowSets000.FOLLOW_18_in_rule__Ushort_type__Group__1__Impl21565); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getUshort_typeAccess().getShortKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Ushort_type__Group__1__Impl


    // $ANTLR start rule__Ulong_type__Group__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10609:1: rule__Ulong_type__Group__0 : rule__Ulong_type__Group__0__Impl rule__Ulong_type__Group__1 ;
    public final void rule__Ulong_type__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10613:1: ( rule__Ulong_type__Group__0__Impl rule__Ulong_type__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10614:2: rule__Ulong_type__Group__0__Impl rule__Ulong_type__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Ulong_type__Group__0__Impl_in_rule__Ulong_type__Group__021600);
            rule__Ulong_type__Group__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Ulong_type__Group__1_in_rule__Ulong_type__Group__021603);
            rule__Ulong_type__Group__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Ulong_type__Group__0


    // $ANTLR start rule__Ulong_type__Group__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10621:1: rule__Ulong_type__Group__0__Impl : ( 'unsigned' ) ;
    public final void rule__Ulong_type__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10625:1: ( ( 'unsigned' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10626:1: ( 'unsigned' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10626:1: ( 'unsigned' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10627:1: 'unsigned'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getUlong_typeAccess().getUnsignedKeyword_0()); 
            }
            match(input,74,FollowSets000.FOLLOW_74_in_rule__Ulong_type__Group__0__Impl21631); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getUlong_typeAccess().getUnsignedKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Ulong_type__Group__0__Impl


    // $ANTLR start rule__Ulong_type__Group__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10640:1: rule__Ulong_type__Group__1 : rule__Ulong_type__Group__1__Impl ;
    public final void rule__Ulong_type__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10644:1: ( rule__Ulong_type__Group__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10645:2: rule__Ulong_type__Group__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Ulong_type__Group__1__Impl_in_rule__Ulong_type__Group__121662);
            rule__Ulong_type__Group__1__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Ulong_type__Group__1


    // $ANTLR start rule__Ulong_type__Group__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10651:1: rule__Ulong_type__Group__1__Impl : ( 'long' ) ;
    public final void rule__Ulong_type__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10655:1: ( ( 'long' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10656:1: ( 'long' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10656:1: ( 'long' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10657:1: 'long'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getUlong_typeAccess().getLongKeyword_1()); 
            }
            match(input,19,FollowSets000.FOLLOW_19_in_rule__Ulong_type__Group__1__Impl21690); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getUlong_typeAccess().getLongKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Ulong_type__Group__1__Impl


    // $ANTLR start rule__Ulonglong_type__Group__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10674:1: rule__Ulonglong_type__Group__0 : rule__Ulonglong_type__Group__0__Impl rule__Ulonglong_type__Group__1 ;
    public final void rule__Ulonglong_type__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10678:1: ( rule__Ulonglong_type__Group__0__Impl rule__Ulonglong_type__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10679:2: rule__Ulonglong_type__Group__0__Impl rule__Ulonglong_type__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Ulonglong_type__Group__0__Impl_in_rule__Ulonglong_type__Group__021725);
            rule__Ulonglong_type__Group__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Ulonglong_type__Group__1_in_rule__Ulonglong_type__Group__021728);
            rule__Ulonglong_type__Group__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Ulonglong_type__Group__0


    // $ANTLR start rule__Ulonglong_type__Group__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10686:1: rule__Ulonglong_type__Group__0__Impl : ( 'unsigned' ) ;
    public final void rule__Ulonglong_type__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10690:1: ( ( 'unsigned' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10691:1: ( 'unsigned' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10691:1: ( 'unsigned' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10692:1: 'unsigned'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getUlonglong_typeAccess().getUnsignedKeyword_0()); 
            }
            match(input,74,FollowSets000.FOLLOW_74_in_rule__Ulonglong_type__Group__0__Impl21756); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getUlonglong_typeAccess().getUnsignedKeyword_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Ulonglong_type__Group__0__Impl


    // $ANTLR start rule__Ulonglong_type__Group__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10705:1: rule__Ulonglong_type__Group__1 : rule__Ulonglong_type__Group__1__Impl rule__Ulonglong_type__Group__2 ;
    public final void rule__Ulonglong_type__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10709:1: ( rule__Ulonglong_type__Group__1__Impl rule__Ulonglong_type__Group__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10710:2: rule__Ulonglong_type__Group__1__Impl rule__Ulonglong_type__Group__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Ulonglong_type__Group__1__Impl_in_rule__Ulonglong_type__Group__121787);
            rule__Ulonglong_type__Group__1__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Ulonglong_type__Group__2_in_rule__Ulonglong_type__Group__121790);
            rule__Ulonglong_type__Group__2();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Ulonglong_type__Group__1


    // $ANTLR start rule__Ulonglong_type__Group__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10717:1: rule__Ulonglong_type__Group__1__Impl : ( 'long' ) ;
    public final void rule__Ulonglong_type__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10721:1: ( ( 'long' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10722:1: ( 'long' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10722:1: ( 'long' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10723:1: 'long'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getUlonglong_typeAccess().getLongKeyword_1()); 
            }
            match(input,19,FollowSets000.FOLLOW_19_in_rule__Ulonglong_type__Group__1__Impl21818); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getUlonglong_typeAccess().getLongKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Ulonglong_type__Group__1__Impl


    // $ANTLR start rule__Ulonglong_type__Group__2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10736:1: rule__Ulonglong_type__Group__2 : rule__Ulonglong_type__Group__2__Impl ;
    public final void rule__Ulonglong_type__Group__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10740:1: ( rule__Ulonglong_type__Group__2__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10741:2: rule__Ulonglong_type__Group__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Ulonglong_type__Group__2__Impl_in_rule__Ulonglong_type__Group__221849);
            rule__Ulonglong_type__Group__2__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Ulonglong_type__Group__2


    // $ANTLR start rule__Ulonglong_type__Group__2__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10747:1: rule__Ulonglong_type__Group__2__Impl : ( 'long' ) ;
    public final void rule__Ulonglong_type__Group__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10751:1: ( ( 'long' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10752:1: ( 'long' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10752:1: ( 'long' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10753:1: 'long'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getUlonglong_typeAccess().getLongKeyword_2()); 
            }
            match(input,19,FollowSets000.FOLLOW_19_in_rule__Ulonglong_type__Group__2__Impl21877); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getUlonglong_typeAccess().getLongKeyword_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Ulonglong_type__Group__2__Impl


    // $ANTLR start rule__Fixed_pt_const_type__Group__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10772:1: rule__Fixed_pt_const_type__Group__0 : rule__Fixed_pt_const_type__Group__0__Impl rule__Fixed_pt_const_type__Group__1 ;
    public final void rule__Fixed_pt_const_type__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10776:1: ( rule__Fixed_pt_const_type__Group__0__Impl rule__Fixed_pt_const_type__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10777:2: rule__Fixed_pt_const_type__Group__0__Impl rule__Fixed_pt_const_type__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Fixed_pt_const_type__Group__0__Impl_in_rule__Fixed_pt_const_type__Group__021914);
            rule__Fixed_pt_const_type__Group__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Fixed_pt_const_type__Group__1_in_rule__Fixed_pt_const_type__Group__021917);
            rule__Fixed_pt_const_type__Group__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Fixed_pt_const_type__Group__0


    // $ANTLR start rule__Fixed_pt_const_type__Group__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10784:1: rule__Fixed_pt_const_type__Group__0__Impl : ( () ) ;
    public final void rule__Fixed_pt_const_type__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10788:1: ( ( () ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10789:1: ( () )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10789:1: ( () )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10790:1: ()
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getFixed_pt_const_typeAccess().getFixedDefAction_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10791:1: ()
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10793:1: 
            {
            }

            if ( backtracking==0 ) {
               after(grammarAccess.getFixed_pt_const_typeAccess().getFixedDefAction_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Fixed_pt_const_type__Group__0__Impl


    // $ANTLR start rule__Fixed_pt_const_type__Group__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10803:1: rule__Fixed_pt_const_type__Group__1 : rule__Fixed_pt_const_type__Group__1__Impl ;
    public final void rule__Fixed_pt_const_type__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10807:1: ( rule__Fixed_pt_const_type__Group__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10808:2: rule__Fixed_pt_const_type__Group__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Fixed_pt_const_type__Group__1__Impl_in_rule__Fixed_pt_const_type__Group__121975);
            rule__Fixed_pt_const_type__Group__1__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Fixed_pt_const_type__Group__1


    // $ANTLR start rule__Fixed_pt_const_type__Group__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10814:1: rule__Fixed_pt_const_type__Group__1__Impl : ( 'fixed' ) ;
    public final void rule__Fixed_pt_const_type__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10818:1: ( ( 'fixed' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10819:1: ( 'fixed' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10819:1: ( 'fixed' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10820:1: 'fixed'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getFixed_pt_const_typeAccess().getFixedKeyword_1()); 
            }
            match(input,73,FollowSets000.FOLLOW_73_in_rule__Fixed_pt_const_type__Group__1__Impl22003); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getFixed_pt_const_typeAccess().getFixedKeyword_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Fixed_pt_const_type__Group__1__Impl


    // $ANTLR start rule__Or_expr__Group__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10837:1: rule__Or_expr__Group__0 : rule__Or_expr__Group__0__Impl rule__Or_expr__Group__1 ;
    public final void rule__Or_expr__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10841:1: ( rule__Or_expr__Group__0__Impl rule__Or_expr__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10842:2: rule__Or_expr__Group__0__Impl rule__Or_expr__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Or_expr__Group__0__Impl_in_rule__Or_expr__Group__022038);
            rule__Or_expr__Group__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Or_expr__Group__1_in_rule__Or_expr__Group__022041);
            rule__Or_expr__Group__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Or_expr__Group__0


    // $ANTLR start rule__Or_expr__Group__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10849:1: rule__Or_expr__Group__0__Impl : ( rulexor_expr ) ;
    public final void rule__Or_expr__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10853:1: ( ( rulexor_expr ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10854:1: ( rulexor_expr )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10854:1: ( rulexor_expr )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10855:1: rulexor_expr
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOr_exprAccess().getXor_exprParserRuleCall_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulexor_expr_in_rule__Or_expr__Group__0__Impl22068);
            rulexor_expr();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getOr_exprAccess().getXor_exprParserRuleCall_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Or_expr__Group__0__Impl


    // $ANTLR start rule__Or_expr__Group__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10866:1: rule__Or_expr__Group__1 : rule__Or_expr__Group__1__Impl ;
    public final void rule__Or_expr__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10870:1: ( rule__Or_expr__Group__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10871:2: rule__Or_expr__Group__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Or_expr__Group__1__Impl_in_rule__Or_expr__Group__122097);
            rule__Or_expr__Group__1__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Or_expr__Group__1


    // $ANTLR start rule__Or_expr__Group__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10877:1: rule__Or_expr__Group__1__Impl : ( ( rule__Or_expr__Group_1__0 )* ) ;
    public final void rule__Or_expr__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10881:1: ( ( ( rule__Or_expr__Group_1__0 )* ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10882:1: ( ( rule__Or_expr__Group_1__0 )* )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10882:1: ( ( rule__Or_expr__Group_1__0 )* )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10883:1: ( rule__Or_expr__Group_1__0 )*
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOr_exprAccess().getGroup_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10884:1: ( rule__Or_expr__Group_1__0 )*
            loop77:
            do {
                int alt77=2;
                int LA77_0 = input.LA(1);

                if ( (LA77_0==77) ) {
                    alt77=1;
                }


                switch (alt77) {
            	case 1 :
            	    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10884:2: rule__Or_expr__Group_1__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_rule__Or_expr__Group_1__0_in_rule__Or_expr__Group__1__Impl22124);
            	    rule__Or_expr__Group_1__0();
            	    _fsp--;
            	    if (failed) return ;

            	    }
            	    break;

            	default :
            	    break loop77;
                }
            } while (true);

            if ( backtracking==0 ) {
               after(grammarAccess.getOr_exprAccess().getGroup_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Or_expr__Group__1__Impl


    // $ANTLR start rule__Or_expr__Group_1__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10898:1: rule__Or_expr__Group_1__0 : rule__Or_expr__Group_1__0__Impl rule__Or_expr__Group_1__1 ;
    public final void rule__Or_expr__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10902:1: ( rule__Or_expr__Group_1__0__Impl rule__Or_expr__Group_1__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10903:2: rule__Or_expr__Group_1__0__Impl rule__Or_expr__Group_1__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Or_expr__Group_1__0__Impl_in_rule__Or_expr__Group_1__022159);
            rule__Or_expr__Group_1__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Or_expr__Group_1__1_in_rule__Or_expr__Group_1__022162);
            rule__Or_expr__Group_1__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Or_expr__Group_1__0


    // $ANTLR start rule__Or_expr__Group_1__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10910:1: rule__Or_expr__Group_1__0__Impl : ( () ) ;
    public final void rule__Or_expr__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10914:1: ( ( () ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10915:1: ( () )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10915:1: ( () )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10916:1: ()
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOr_exprAccess().getBinaryExpressionLeftAction_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10917:1: ()
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10919:1: 
            {
            }

            if ( backtracking==0 ) {
               after(grammarAccess.getOr_exprAccess().getBinaryExpressionLeftAction_1_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Or_expr__Group_1__0__Impl


    // $ANTLR start rule__Or_expr__Group_1__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10929:1: rule__Or_expr__Group_1__1 : rule__Or_expr__Group_1__1__Impl rule__Or_expr__Group_1__2 ;
    public final void rule__Or_expr__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10933:1: ( rule__Or_expr__Group_1__1__Impl rule__Or_expr__Group_1__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10934:2: rule__Or_expr__Group_1__1__Impl rule__Or_expr__Group_1__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Or_expr__Group_1__1__Impl_in_rule__Or_expr__Group_1__122220);
            rule__Or_expr__Group_1__1__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Or_expr__Group_1__2_in_rule__Or_expr__Group_1__122223);
            rule__Or_expr__Group_1__2();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Or_expr__Group_1__1


    // $ANTLR start rule__Or_expr__Group_1__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10941:1: rule__Or_expr__Group_1__1__Impl : ( ( rule__Or_expr__OperatorAssignment_1_1 ) ) ;
    public final void rule__Or_expr__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10945:1: ( ( ( rule__Or_expr__OperatorAssignment_1_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10946:1: ( ( rule__Or_expr__OperatorAssignment_1_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10946:1: ( ( rule__Or_expr__OperatorAssignment_1_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10947:1: ( rule__Or_expr__OperatorAssignment_1_1 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOr_exprAccess().getOperatorAssignment_1_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10948:1: ( rule__Or_expr__OperatorAssignment_1_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10948:2: rule__Or_expr__OperatorAssignment_1_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Or_expr__OperatorAssignment_1_1_in_rule__Or_expr__Group_1__1__Impl22250);
            rule__Or_expr__OperatorAssignment_1_1();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getOr_exprAccess().getOperatorAssignment_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Or_expr__Group_1__1__Impl


    // $ANTLR start rule__Or_expr__Group_1__2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10958:1: rule__Or_expr__Group_1__2 : rule__Or_expr__Group_1__2__Impl ;
    public final void rule__Or_expr__Group_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10962:1: ( rule__Or_expr__Group_1__2__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10963:2: rule__Or_expr__Group_1__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Or_expr__Group_1__2__Impl_in_rule__Or_expr__Group_1__222280);
            rule__Or_expr__Group_1__2__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Or_expr__Group_1__2


    // $ANTLR start rule__Or_expr__Group_1__2__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10969:1: rule__Or_expr__Group_1__2__Impl : ( ( rule__Or_expr__RightAssignment_1_2 ) ) ;
    public final void rule__Or_expr__Group_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10973:1: ( ( ( rule__Or_expr__RightAssignment_1_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10974:1: ( ( rule__Or_expr__RightAssignment_1_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10974:1: ( ( rule__Or_expr__RightAssignment_1_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10975:1: ( rule__Or_expr__RightAssignment_1_2 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOr_exprAccess().getRightAssignment_1_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10976:1: ( rule__Or_expr__RightAssignment_1_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10976:2: rule__Or_expr__RightAssignment_1_2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Or_expr__RightAssignment_1_2_in_rule__Or_expr__Group_1__2__Impl22307);
            rule__Or_expr__RightAssignment_1_2();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getOr_exprAccess().getRightAssignment_1_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Or_expr__Group_1__2__Impl


    // $ANTLR start rule__Xor_expr__Group__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10992:1: rule__Xor_expr__Group__0 : rule__Xor_expr__Group__0__Impl rule__Xor_expr__Group__1 ;
    public final void rule__Xor_expr__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10996:1: ( rule__Xor_expr__Group__0__Impl rule__Xor_expr__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:10997:2: rule__Xor_expr__Group__0__Impl rule__Xor_expr__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Xor_expr__Group__0__Impl_in_rule__Xor_expr__Group__022343);
            rule__Xor_expr__Group__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Xor_expr__Group__1_in_rule__Xor_expr__Group__022346);
            rule__Xor_expr__Group__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Xor_expr__Group__0


    // $ANTLR start rule__Xor_expr__Group__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11004:1: rule__Xor_expr__Group__0__Impl : ( ruleand_expr ) ;
    public final void rule__Xor_expr__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11008:1: ( ( ruleand_expr ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11009:1: ( ruleand_expr )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11009:1: ( ruleand_expr )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11010:1: ruleand_expr
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getXor_exprAccess().getAnd_exprParserRuleCall_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleand_expr_in_rule__Xor_expr__Group__0__Impl22373);
            ruleand_expr();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getXor_exprAccess().getAnd_exprParserRuleCall_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Xor_expr__Group__0__Impl


    // $ANTLR start rule__Xor_expr__Group__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11021:1: rule__Xor_expr__Group__1 : rule__Xor_expr__Group__1__Impl ;
    public final void rule__Xor_expr__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11025:1: ( rule__Xor_expr__Group__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11026:2: rule__Xor_expr__Group__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Xor_expr__Group__1__Impl_in_rule__Xor_expr__Group__122402);
            rule__Xor_expr__Group__1__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Xor_expr__Group__1


    // $ANTLR start rule__Xor_expr__Group__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11032:1: rule__Xor_expr__Group__1__Impl : ( ( rule__Xor_expr__Group_1__0 )* ) ;
    public final void rule__Xor_expr__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11036:1: ( ( ( rule__Xor_expr__Group_1__0 )* ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11037:1: ( ( rule__Xor_expr__Group_1__0 )* )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11037:1: ( ( rule__Xor_expr__Group_1__0 )* )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11038:1: ( rule__Xor_expr__Group_1__0 )*
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getXor_exprAccess().getGroup_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11039:1: ( rule__Xor_expr__Group_1__0 )*
            loop78:
            do {
                int alt78=2;
                int LA78_0 = input.LA(1);

                if ( (LA78_0==78) ) {
                    alt78=1;
                }


                switch (alt78) {
            	case 1 :
            	    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11039:2: rule__Xor_expr__Group_1__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_rule__Xor_expr__Group_1__0_in_rule__Xor_expr__Group__1__Impl22429);
            	    rule__Xor_expr__Group_1__0();
            	    _fsp--;
            	    if (failed) return ;

            	    }
            	    break;

            	default :
            	    break loop78;
                }
            } while (true);

            if ( backtracking==0 ) {
               after(grammarAccess.getXor_exprAccess().getGroup_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Xor_expr__Group__1__Impl


    // $ANTLR start rule__Xor_expr__Group_1__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11053:1: rule__Xor_expr__Group_1__0 : rule__Xor_expr__Group_1__0__Impl rule__Xor_expr__Group_1__1 ;
    public final void rule__Xor_expr__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11057:1: ( rule__Xor_expr__Group_1__0__Impl rule__Xor_expr__Group_1__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11058:2: rule__Xor_expr__Group_1__0__Impl rule__Xor_expr__Group_1__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Xor_expr__Group_1__0__Impl_in_rule__Xor_expr__Group_1__022464);
            rule__Xor_expr__Group_1__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Xor_expr__Group_1__1_in_rule__Xor_expr__Group_1__022467);
            rule__Xor_expr__Group_1__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Xor_expr__Group_1__0


    // $ANTLR start rule__Xor_expr__Group_1__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11065:1: rule__Xor_expr__Group_1__0__Impl : ( () ) ;
    public final void rule__Xor_expr__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11069:1: ( ( () ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11070:1: ( () )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11070:1: ( () )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11071:1: ()
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getXor_exprAccess().getBinaryExpressionLeftAction_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11072:1: ()
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11074:1: 
            {
            }

            if ( backtracking==0 ) {
               after(grammarAccess.getXor_exprAccess().getBinaryExpressionLeftAction_1_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Xor_expr__Group_1__0__Impl


    // $ANTLR start rule__Xor_expr__Group_1__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11084:1: rule__Xor_expr__Group_1__1 : rule__Xor_expr__Group_1__1__Impl rule__Xor_expr__Group_1__2 ;
    public final void rule__Xor_expr__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11088:1: ( rule__Xor_expr__Group_1__1__Impl rule__Xor_expr__Group_1__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11089:2: rule__Xor_expr__Group_1__1__Impl rule__Xor_expr__Group_1__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Xor_expr__Group_1__1__Impl_in_rule__Xor_expr__Group_1__122525);
            rule__Xor_expr__Group_1__1__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Xor_expr__Group_1__2_in_rule__Xor_expr__Group_1__122528);
            rule__Xor_expr__Group_1__2();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Xor_expr__Group_1__1


    // $ANTLR start rule__Xor_expr__Group_1__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11096:1: rule__Xor_expr__Group_1__1__Impl : ( ( rule__Xor_expr__OperatorAssignment_1_1 ) ) ;
    public final void rule__Xor_expr__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11100:1: ( ( ( rule__Xor_expr__OperatorAssignment_1_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11101:1: ( ( rule__Xor_expr__OperatorAssignment_1_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11101:1: ( ( rule__Xor_expr__OperatorAssignment_1_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11102:1: ( rule__Xor_expr__OperatorAssignment_1_1 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getXor_exprAccess().getOperatorAssignment_1_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11103:1: ( rule__Xor_expr__OperatorAssignment_1_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11103:2: rule__Xor_expr__OperatorAssignment_1_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Xor_expr__OperatorAssignment_1_1_in_rule__Xor_expr__Group_1__1__Impl22555);
            rule__Xor_expr__OperatorAssignment_1_1();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getXor_exprAccess().getOperatorAssignment_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Xor_expr__Group_1__1__Impl


    // $ANTLR start rule__Xor_expr__Group_1__2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11113:1: rule__Xor_expr__Group_1__2 : rule__Xor_expr__Group_1__2__Impl ;
    public final void rule__Xor_expr__Group_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11117:1: ( rule__Xor_expr__Group_1__2__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11118:2: rule__Xor_expr__Group_1__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Xor_expr__Group_1__2__Impl_in_rule__Xor_expr__Group_1__222585);
            rule__Xor_expr__Group_1__2__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Xor_expr__Group_1__2


    // $ANTLR start rule__Xor_expr__Group_1__2__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11124:1: rule__Xor_expr__Group_1__2__Impl : ( ( rule__Xor_expr__RightAssignment_1_2 ) ) ;
    public final void rule__Xor_expr__Group_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11128:1: ( ( ( rule__Xor_expr__RightAssignment_1_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11129:1: ( ( rule__Xor_expr__RightAssignment_1_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11129:1: ( ( rule__Xor_expr__RightAssignment_1_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11130:1: ( rule__Xor_expr__RightAssignment_1_2 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getXor_exprAccess().getRightAssignment_1_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11131:1: ( rule__Xor_expr__RightAssignment_1_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11131:2: rule__Xor_expr__RightAssignment_1_2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Xor_expr__RightAssignment_1_2_in_rule__Xor_expr__Group_1__2__Impl22612);
            rule__Xor_expr__RightAssignment_1_2();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getXor_exprAccess().getRightAssignment_1_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Xor_expr__Group_1__2__Impl


    // $ANTLR start rule__And_expr__Group__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11147:1: rule__And_expr__Group__0 : rule__And_expr__Group__0__Impl rule__And_expr__Group__1 ;
    public final void rule__And_expr__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11151:1: ( rule__And_expr__Group__0__Impl rule__And_expr__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11152:2: rule__And_expr__Group__0__Impl rule__And_expr__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__And_expr__Group__0__Impl_in_rule__And_expr__Group__022648);
            rule__And_expr__Group__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__And_expr__Group__1_in_rule__And_expr__Group__022651);
            rule__And_expr__Group__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__And_expr__Group__0


    // $ANTLR start rule__And_expr__Group__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11159:1: rule__And_expr__Group__0__Impl : ( ruleshift_expr ) ;
    public final void rule__And_expr__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11163:1: ( ( ruleshift_expr ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11164:1: ( ruleshift_expr )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11164:1: ( ruleshift_expr )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11165:1: ruleshift_expr
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAnd_exprAccess().getShift_exprParserRuleCall_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleshift_expr_in_rule__And_expr__Group__0__Impl22678);
            ruleshift_expr();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getAnd_exprAccess().getShift_exprParserRuleCall_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__And_expr__Group__0__Impl


    // $ANTLR start rule__And_expr__Group__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11176:1: rule__And_expr__Group__1 : rule__And_expr__Group__1__Impl ;
    public final void rule__And_expr__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11180:1: ( rule__And_expr__Group__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11181:2: rule__And_expr__Group__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__And_expr__Group__1__Impl_in_rule__And_expr__Group__122707);
            rule__And_expr__Group__1__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__And_expr__Group__1


    // $ANTLR start rule__And_expr__Group__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11187:1: rule__And_expr__Group__1__Impl : ( ( rule__And_expr__Group_1__0 )* ) ;
    public final void rule__And_expr__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11191:1: ( ( ( rule__And_expr__Group_1__0 )* ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11192:1: ( ( rule__And_expr__Group_1__0 )* )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11192:1: ( ( rule__And_expr__Group_1__0 )* )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11193:1: ( rule__And_expr__Group_1__0 )*
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAnd_exprAccess().getGroup_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11194:1: ( rule__And_expr__Group_1__0 )*
            loop79:
            do {
                int alt79=2;
                int LA79_0 = input.LA(1);

                if ( (LA79_0==79) ) {
                    alt79=1;
                }


                switch (alt79) {
            	case 1 :
            	    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11194:2: rule__And_expr__Group_1__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_rule__And_expr__Group_1__0_in_rule__And_expr__Group__1__Impl22734);
            	    rule__And_expr__Group_1__0();
            	    _fsp--;
            	    if (failed) return ;

            	    }
            	    break;

            	default :
            	    break loop79;
                }
            } while (true);

            if ( backtracking==0 ) {
               after(grammarAccess.getAnd_exprAccess().getGroup_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__And_expr__Group__1__Impl


    // $ANTLR start rule__And_expr__Group_1__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11208:1: rule__And_expr__Group_1__0 : rule__And_expr__Group_1__0__Impl rule__And_expr__Group_1__1 ;
    public final void rule__And_expr__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11212:1: ( rule__And_expr__Group_1__0__Impl rule__And_expr__Group_1__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11213:2: rule__And_expr__Group_1__0__Impl rule__And_expr__Group_1__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__And_expr__Group_1__0__Impl_in_rule__And_expr__Group_1__022769);
            rule__And_expr__Group_1__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__And_expr__Group_1__1_in_rule__And_expr__Group_1__022772);
            rule__And_expr__Group_1__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__And_expr__Group_1__0


    // $ANTLR start rule__And_expr__Group_1__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11220:1: rule__And_expr__Group_1__0__Impl : ( () ) ;
    public final void rule__And_expr__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11224:1: ( ( () ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11225:1: ( () )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11225:1: ( () )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11226:1: ()
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAnd_exprAccess().getBinaryExpressionLeftAction_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11227:1: ()
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11229:1: 
            {
            }

            if ( backtracking==0 ) {
               after(grammarAccess.getAnd_exprAccess().getBinaryExpressionLeftAction_1_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__And_expr__Group_1__0__Impl


    // $ANTLR start rule__And_expr__Group_1__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11239:1: rule__And_expr__Group_1__1 : rule__And_expr__Group_1__1__Impl rule__And_expr__Group_1__2 ;
    public final void rule__And_expr__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11243:1: ( rule__And_expr__Group_1__1__Impl rule__And_expr__Group_1__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11244:2: rule__And_expr__Group_1__1__Impl rule__And_expr__Group_1__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__And_expr__Group_1__1__Impl_in_rule__And_expr__Group_1__122830);
            rule__And_expr__Group_1__1__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__And_expr__Group_1__2_in_rule__And_expr__Group_1__122833);
            rule__And_expr__Group_1__2();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__And_expr__Group_1__1


    // $ANTLR start rule__And_expr__Group_1__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11251:1: rule__And_expr__Group_1__1__Impl : ( ( rule__And_expr__OperatorAssignment_1_1 ) ) ;
    public final void rule__And_expr__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11255:1: ( ( ( rule__And_expr__OperatorAssignment_1_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11256:1: ( ( rule__And_expr__OperatorAssignment_1_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11256:1: ( ( rule__And_expr__OperatorAssignment_1_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11257:1: ( rule__And_expr__OperatorAssignment_1_1 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAnd_exprAccess().getOperatorAssignment_1_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11258:1: ( rule__And_expr__OperatorAssignment_1_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11258:2: rule__And_expr__OperatorAssignment_1_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__And_expr__OperatorAssignment_1_1_in_rule__And_expr__Group_1__1__Impl22860);
            rule__And_expr__OperatorAssignment_1_1();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getAnd_exprAccess().getOperatorAssignment_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__And_expr__Group_1__1__Impl


    // $ANTLR start rule__And_expr__Group_1__2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11268:1: rule__And_expr__Group_1__2 : rule__And_expr__Group_1__2__Impl ;
    public final void rule__And_expr__Group_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11272:1: ( rule__And_expr__Group_1__2__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11273:2: rule__And_expr__Group_1__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__And_expr__Group_1__2__Impl_in_rule__And_expr__Group_1__222890);
            rule__And_expr__Group_1__2__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__And_expr__Group_1__2


    // $ANTLR start rule__And_expr__Group_1__2__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11279:1: rule__And_expr__Group_1__2__Impl : ( ( rule__And_expr__RightAssignment_1_2 ) ) ;
    public final void rule__And_expr__Group_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11283:1: ( ( ( rule__And_expr__RightAssignment_1_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11284:1: ( ( rule__And_expr__RightAssignment_1_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11284:1: ( ( rule__And_expr__RightAssignment_1_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11285:1: ( rule__And_expr__RightAssignment_1_2 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAnd_exprAccess().getRightAssignment_1_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11286:1: ( rule__And_expr__RightAssignment_1_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11286:2: rule__And_expr__RightAssignment_1_2
            {
            pushFollow(FollowSets000.FOLLOW_rule__And_expr__RightAssignment_1_2_in_rule__And_expr__Group_1__2__Impl22917);
            rule__And_expr__RightAssignment_1_2();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getAnd_exprAccess().getRightAssignment_1_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__And_expr__Group_1__2__Impl


    // $ANTLR start rule__Shift_expr__Group__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11302:1: rule__Shift_expr__Group__0 : rule__Shift_expr__Group__0__Impl rule__Shift_expr__Group__1 ;
    public final void rule__Shift_expr__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11306:1: ( rule__Shift_expr__Group__0__Impl rule__Shift_expr__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11307:2: rule__Shift_expr__Group__0__Impl rule__Shift_expr__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Shift_expr__Group__0__Impl_in_rule__Shift_expr__Group__022953);
            rule__Shift_expr__Group__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Shift_expr__Group__1_in_rule__Shift_expr__Group__022956);
            rule__Shift_expr__Group__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Shift_expr__Group__0


    // $ANTLR start rule__Shift_expr__Group__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11314:1: rule__Shift_expr__Group__0__Impl : ( ruleadd_expr ) ;
    public final void rule__Shift_expr__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11318:1: ( ( ruleadd_expr ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11319:1: ( ruleadd_expr )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11319:1: ( ruleadd_expr )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11320:1: ruleadd_expr
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getShift_exprAccess().getAdd_exprParserRuleCall_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleadd_expr_in_rule__Shift_expr__Group__0__Impl22983);
            ruleadd_expr();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getShift_exprAccess().getAdd_exprParserRuleCall_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Shift_expr__Group__0__Impl


    // $ANTLR start rule__Shift_expr__Group__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11331:1: rule__Shift_expr__Group__1 : rule__Shift_expr__Group__1__Impl ;
    public final void rule__Shift_expr__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11335:1: ( rule__Shift_expr__Group__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11336:2: rule__Shift_expr__Group__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Shift_expr__Group__1__Impl_in_rule__Shift_expr__Group__123012);
            rule__Shift_expr__Group__1__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Shift_expr__Group__1


    // $ANTLR start rule__Shift_expr__Group__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11342:1: rule__Shift_expr__Group__1__Impl : ( ( rule__Shift_expr__Group_1__0 )* ) ;
    public final void rule__Shift_expr__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11346:1: ( ( ( rule__Shift_expr__Group_1__0 )* ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11347:1: ( ( rule__Shift_expr__Group_1__0 )* )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11347:1: ( ( rule__Shift_expr__Group_1__0 )* )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11348:1: ( rule__Shift_expr__Group_1__0 )*
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getShift_exprAccess().getGroup_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11349:1: ( rule__Shift_expr__Group_1__0 )*
            loop80:
            do {
                int alt80=2;
                int LA80_0 = input.LA(1);

                if ( ((LA80_0>=32 && LA80_0<=33)) ) {
                    alt80=1;
                }


                switch (alt80) {
            	case 1 :
            	    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11349:2: rule__Shift_expr__Group_1__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_rule__Shift_expr__Group_1__0_in_rule__Shift_expr__Group__1__Impl23039);
            	    rule__Shift_expr__Group_1__0();
            	    _fsp--;
            	    if (failed) return ;

            	    }
            	    break;

            	default :
            	    break loop80;
                }
            } while (true);

            if ( backtracking==0 ) {
               after(grammarAccess.getShift_exprAccess().getGroup_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Shift_expr__Group__1__Impl


    // $ANTLR start rule__Shift_expr__Group_1__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11363:1: rule__Shift_expr__Group_1__0 : rule__Shift_expr__Group_1__0__Impl rule__Shift_expr__Group_1__1 ;
    public final void rule__Shift_expr__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11367:1: ( rule__Shift_expr__Group_1__0__Impl rule__Shift_expr__Group_1__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11368:2: rule__Shift_expr__Group_1__0__Impl rule__Shift_expr__Group_1__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Shift_expr__Group_1__0__Impl_in_rule__Shift_expr__Group_1__023074);
            rule__Shift_expr__Group_1__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Shift_expr__Group_1__1_in_rule__Shift_expr__Group_1__023077);
            rule__Shift_expr__Group_1__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Shift_expr__Group_1__0


    // $ANTLR start rule__Shift_expr__Group_1__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11375:1: rule__Shift_expr__Group_1__0__Impl : ( () ) ;
    public final void rule__Shift_expr__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11379:1: ( ( () ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11380:1: ( () )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11380:1: ( () )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11381:1: ()
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getShift_exprAccess().getBinaryExpressionLeftAction_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11382:1: ()
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11384:1: 
            {
            }

            if ( backtracking==0 ) {
               after(grammarAccess.getShift_exprAccess().getBinaryExpressionLeftAction_1_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Shift_expr__Group_1__0__Impl


    // $ANTLR start rule__Shift_expr__Group_1__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11394:1: rule__Shift_expr__Group_1__1 : rule__Shift_expr__Group_1__1__Impl rule__Shift_expr__Group_1__2 ;
    public final void rule__Shift_expr__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11398:1: ( rule__Shift_expr__Group_1__1__Impl rule__Shift_expr__Group_1__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11399:2: rule__Shift_expr__Group_1__1__Impl rule__Shift_expr__Group_1__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Shift_expr__Group_1__1__Impl_in_rule__Shift_expr__Group_1__123135);
            rule__Shift_expr__Group_1__1__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Shift_expr__Group_1__2_in_rule__Shift_expr__Group_1__123138);
            rule__Shift_expr__Group_1__2();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Shift_expr__Group_1__1


    // $ANTLR start rule__Shift_expr__Group_1__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11406:1: rule__Shift_expr__Group_1__1__Impl : ( ( rule__Shift_expr__OperatorAssignment_1_1 ) ) ;
    public final void rule__Shift_expr__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11410:1: ( ( ( rule__Shift_expr__OperatorAssignment_1_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11411:1: ( ( rule__Shift_expr__OperatorAssignment_1_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11411:1: ( ( rule__Shift_expr__OperatorAssignment_1_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11412:1: ( rule__Shift_expr__OperatorAssignment_1_1 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getShift_exprAccess().getOperatorAssignment_1_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11413:1: ( rule__Shift_expr__OperatorAssignment_1_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11413:2: rule__Shift_expr__OperatorAssignment_1_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Shift_expr__OperatorAssignment_1_1_in_rule__Shift_expr__Group_1__1__Impl23165);
            rule__Shift_expr__OperatorAssignment_1_1();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getShift_exprAccess().getOperatorAssignment_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Shift_expr__Group_1__1__Impl


    // $ANTLR start rule__Shift_expr__Group_1__2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11423:1: rule__Shift_expr__Group_1__2 : rule__Shift_expr__Group_1__2__Impl ;
    public final void rule__Shift_expr__Group_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11427:1: ( rule__Shift_expr__Group_1__2__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11428:2: rule__Shift_expr__Group_1__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Shift_expr__Group_1__2__Impl_in_rule__Shift_expr__Group_1__223195);
            rule__Shift_expr__Group_1__2__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Shift_expr__Group_1__2


    // $ANTLR start rule__Shift_expr__Group_1__2__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11434:1: rule__Shift_expr__Group_1__2__Impl : ( ( rule__Shift_expr__RightAssignment_1_2 ) ) ;
    public final void rule__Shift_expr__Group_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11438:1: ( ( ( rule__Shift_expr__RightAssignment_1_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11439:1: ( ( rule__Shift_expr__RightAssignment_1_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11439:1: ( ( rule__Shift_expr__RightAssignment_1_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11440:1: ( rule__Shift_expr__RightAssignment_1_2 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getShift_exprAccess().getRightAssignment_1_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11441:1: ( rule__Shift_expr__RightAssignment_1_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11441:2: rule__Shift_expr__RightAssignment_1_2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Shift_expr__RightAssignment_1_2_in_rule__Shift_expr__Group_1__2__Impl23222);
            rule__Shift_expr__RightAssignment_1_2();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getShift_exprAccess().getRightAssignment_1_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Shift_expr__Group_1__2__Impl


    // $ANTLR start rule__Add_expr__Group__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11457:1: rule__Add_expr__Group__0 : rule__Add_expr__Group__0__Impl rule__Add_expr__Group__1 ;
    public final void rule__Add_expr__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11461:1: ( rule__Add_expr__Group__0__Impl rule__Add_expr__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11462:2: rule__Add_expr__Group__0__Impl rule__Add_expr__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Add_expr__Group__0__Impl_in_rule__Add_expr__Group__023258);
            rule__Add_expr__Group__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Add_expr__Group__1_in_rule__Add_expr__Group__023261);
            rule__Add_expr__Group__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Add_expr__Group__0


    // $ANTLR start rule__Add_expr__Group__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11469:1: rule__Add_expr__Group__0__Impl : ( rulemult_expr ) ;
    public final void rule__Add_expr__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11473:1: ( ( rulemult_expr ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11474:1: ( rulemult_expr )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11474:1: ( rulemult_expr )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11475:1: rulemult_expr
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAdd_exprAccess().getMult_exprParserRuleCall_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulemult_expr_in_rule__Add_expr__Group__0__Impl23288);
            rulemult_expr();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getAdd_exprAccess().getMult_exprParserRuleCall_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Add_expr__Group__0__Impl


    // $ANTLR start rule__Add_expr__Group__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11486:1: rule__Add_expr__Group__1 : rule__Add_expr__Group__1__Impl ;
    public final void rule__Add_expr__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11490:1: ( rule__Add_expr__Group__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11491:2: rule__Add_expr__Group__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Add_expr__Group__1__Impl_in_rule__Add_expr__Group__123317);
            rule__Add_expr__Group__1__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Add_expr__Group__1


    // $ANTLR start rule__Add_expr__Group__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11497:1: rule__Add_expr__Group__1__Impl : ( ( rule__Add_expr__Group_1__0 )* ) ;
    public final void rule__Add_expr__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11501:1: ( ( ( rule__Add_expr__Group_1__0 )* ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11502:1: ( ( rule__Add_expr__Group_1__0 )* )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11502:1: ( ( rule__Add_expr__Group_1__0 )* )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11503:1: ( rule__Add_expr__Group_1__0 )*
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAdd_exprAccess().getGroup_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11504:1: ( rule__Add_expr__Group_1__0 )*
            loop81:
            do {
                int alt81=2;
                int LA81_0 = input.LA(1);

                if ( ((LA81_0>=34 && LA81_0<=35)) ) {
                    alt81=1;
                }


                switch (alt81) {
            	case 1 :
            	    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11504:2: rule__Add_expr__Group_1__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_rule__Add_expr__Group_1__0_in_rule__Add_expr__Group__1__Impl23344);
            	    rule__Add_expr__Group_1__0();
            	    _fsp--;
            	    if (failed) return ;

            	    }
            	    break;

            	default :
            	    break loop81;
                }
            } while (true);

            if ( backtracking==0 ) {
               after(grammarAccess.getAdd_exprAccess().getGroup_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Add_expr__Group__1__Impl


    // $ANTLR start rule__Add_expr__Group_1__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11518:1: rule__Add_expr__Group_1__0 : rule__Add_expr__Group_1__0__Impl rule__Add_expr__Group_1__1 ;
    public final void rule__Add_expr__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11522:1: ( rule__Add_expr__Group_1__0__Impl rule__Add_expr__Group_1__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11523:2: rule__Add_expr__Group_1__0__Impl rule__Add_expr__Group_1__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Add_expr__Group_1__0__Impl_in_rule__Add_expr__Group_1__023379);
            rule__Add_expr__Group_1__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Add_expr__Group_1__1_in_rule__Add_expr__Group_1__023382);
            rule__Add_expr__Group_1__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Add_expr__Group_1__0


    // $ANTLR start rule__Add_expr__Group_1__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11530:1: rule__Add_expr__Group_1__0__Impl : ( () ) ;
    public final void rule__Add_expr__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11534:1: ( ( () ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11535:1: ( () )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11535:1: ( () )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11536:1: ()
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAdd_exprAccess().getBinaryExpressionLeftAction_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11537:1: ()
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11539:1: 
            {
            }

            if ( backtracking==0 ) {
               after(grammarAccess.getAdd_exprAccess().getBinaryExpressionLeftAction_1_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Add_expr__Group_1__0__Impl


    // $ANTLR start rule__Add_expr__Group_1__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11549:1: rule__Add_expr__Group_1__1 : rule__Add_expr__Group_1__1__Impl rule__Add_expr__Group_1__2 ;
    public final void rule__Add_expr__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11553:1: ( rule__Add_expr__Group_1__1__Impl rule__Add_expr__Group_1__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11554:2: rule__Add_expr__Group_1__1__Impl rule__Add_expr__Group_1__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Add_expr__Group_1__1__Impl_in_rule__Add_expr__Group_1__123440);
            rule__Add_expr__Group_1__1__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Add_expr__Group_1__2_in_rule__Add_expr__Group_1__123443);
            rule__Add_expr__Group_1__2();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Add_expr__Group_1__1


    // $ANTLR start rule__Add_expr__Group_1__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11561:1: rule__Add_expr__Group_1__1__Impl : ( ( rule__Add_expr__OperatorAssignment_1_1 ) ) ;
    public final void rule__Add_expr__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11565:1: ( ( ( rule__Add_expr__OperatorAssignment_1_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11566:1: ( ( rule__Add_expr__OperatorAssignment_1_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11566:1: ( ( rule__Add_expr__OperatorAssignment_1_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11567:1: ( rule__Add_expr__OperatorAssignment_1_1 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAdd_exprAccess().getOperatorAssignment_1_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11568:1: ( rule__Add_expr__OperatorAssignment_1_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11568:2: rule__Add_expr__OperatorAssignment_1_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Add_expr__OperatorAssignment_1_1_in_rule__Add_expr__Group_1__1__Impl23470);
            rule__Add_expr__OperatorAssignment_1_1();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getAdd_exprAccess().getOperatorAssignment_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Add_expr__Group_1__1__Impl


    // $ANTLR start rule__Add_expr__Group_1__2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11578:1: rule__Add_expr__Group_1__2 : rule__Add_expr__Group_1__2__Impl ;
    public final void rule__Add_expr__Group_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11582:1: ( rule__Add_expr__Group_1__2__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11583:2: rule__Add_expr__Group_1__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Add_expr__Group_1__2__Impl_in_rule__Add_expr__Group_1__223500);
            rule__Add_expr__Group_1__2__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Add_expr__Group_1__2


    // $ANTLR start rule__Add_expr__Group_1__2__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11589:1: rule__Add_expr__Group_1__2__Impl : ( ( rule__Add_expr__RightAssignment_1_2 ) ) ;
    public final void rule__Add_expr__Group_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11593:1: ( ( ( rule__Add_expr__RightAssignment_1_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11594:1: ( ( rule__Add_expr__RightAssignment_1_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11594:1: ( ( rule__Add_expr__RightAssignment_1_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11595:1: ( rule__Add_expr__RightAssignment_1_2 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAdd_exprAccess().getRightAssignment_1_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11596:1: ( rule__Add_expr__RightAssignment_1_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11596:2: rule__Add_expr__RightAssignment_1_2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Add_expr__RightAssignment_1_2_in_rule__Add_expr__Group_1__2__Impl23527);
            rule__Add_expr__RightAssignment_1_2();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getAdd_exprAccess().getRightAssignment_1_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Add_expr__Group_1__2__Impl


    // $ANTLR start rule__Mult_expr__Group__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11612:1: rule__Mult_expr__Group__0 : rule__Mult_expr__Group__0__Impl rule__Mult_expr__Group__1 ;
    public final void rule__Mult_expr__Group__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11616:1: ( rule__Mult_expr__Group__0__Impl rule__Mult_expr__Group__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11617:2: rule__Mult_expr__Group__0__Impl rule__Mult_expr__Group__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Mult_expr__Group__0__Impl_in_rule__Mult_expr__Group__023563);
            rule__Mult_expr__Group__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Mult_expr__Group__1_in_rule__Mult_expr__Group__023566);
            rule__Mult_expr__Group__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Mult_expr__Group__0


    // $ANTLR start rule__Mult_expr__Group__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11624:1: rule__Mult_expr__Group__0__Impl : ( ruleunary_expr ) ;
    public final void rule__Mult_expr__Group__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11628:1: ( ( ruleunary_expr ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11629:1: ( ruleunary_expr )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11629:1: ( ruleunary_expr )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11630:1: ruleunary_expr
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getMult_exprAccess().getUnary_exprParserRuleCall_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleunary_expr_in_rule__Mult_expr__Group__0__Impl23593);
            ruleunary_expr();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getMult_exprAccess().getUnary_exprParserRuleCall_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Mult_expr__Group__0__Impl


    // $ANTLR start rule__Mult_expr__Group__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11641:1: rule__Mult_expr__Group__1 : rule__Mult_expr__Group__1__Impl ;
    public final void rule__Mult_expr__Group__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11645:1: ( rule__Mult_expr__Group__1__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11646:2: rule__Mult_expr__Group__1__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Mult_expr__Group__1__Impl_in_rule__Mult_expr__Group__123622);
            rule__Mult_expr__Group__1__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Mult_expr__Group__1


    // $ANTLR start rule__Mult_expr__Group__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11652:1: rule__Mult_expr__Group__1__Impl : ( ( rule__Mult_expr__Group_1__0 )* ) ;
    public final void rule__Mult_expr__Group__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11656:1: ( ( ( rule__Mult_expr__Group_1__0 )* ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11657:1: ( ( rule__Mult_expr__Group_1__0 )* )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11657:1: ( ( rule__Mult_expr__Group_1__0 )* )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11658:1: ( rule__Mult_expr__Group_1__0 )*
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getMult_exprAccess().getGroup_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11659:1: ( rule__Mult_expr__Group_1__0 )*
            loop82:
            do {
                int alt82=2;
                int LA82_0 = input.LA(1);

                if ( ((LA82_0>=36 && LA82_0<=38)) ) {
                    alt82=1;
                }


                switch (alt82) {
            	case 1 :
            	    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11659:2: rule__Mult_expr__Group_1__0
            	    {
            	    pushFollow(FollowSets000.FOLLOW_rule__Mult_expr__Group_1__0_in_rule__Mult_expr__Group__1__Impl23649);
            	    rule__Mult_expr__Group_1__0();
            	    _fsp--;
            	    if (failed) return ;

            	    }
            	    break;

            	default :
            	    break loop82;
                }
            } while (true);

            if ( backtracking==0 ) {
               after(grammarAccess.getMult_exprAccess().getGroup_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Mult_expr__Group__1__Impl


    // $ANTLR start rule__Mult_expr__Group_1__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11673:1: rule__Mult_expr__Group_1__0 : rule__Mult_expr__Group_1__0__Impl rule__Mult_expr__Group_1__1 ;
    public final void rule__Mult_expr__Group_1__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11677:1: ( rule__Mult_expr__Group_1__0__Impl rule__Mult_expr__Group_1__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11678:2: rule__Mult_expr__Group_1__0__Impl rule__Mult_expr__Group_1__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Mult_expr__Group_1__0__Impl_in_rule__Mult_expr__Group_1__023684);
            rule__Mult_expr__Group_1__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Mult_expr__Group_1__1_in_rule__Mult_expr__Group_1__023687);
            rule__Mult_expr__Group_1__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Mult_expr__Group_1__0


    // $ANTLR start rule__Mult_expr__Group_1__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11685:1: rule__Mult_expr__Group_1__0__Impl : ( () ) ;
    public final void rule__Mult_expr__Group_1__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11689:1: ( ( () ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11690:1: ( () )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11690:1: ( () )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11691:1: ()
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getMult_exprAccess().getBinaryExpressionLeftAction_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11692:1: ()
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11694:1: 
            {
            }

            if ( backtracking==0 ) {
               after(grammarAccess.getMult_exprAccess().getBinaryExpressionLeftAction_1_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Mult_expr__Group_1__0__Impl


    // $ANTLR start rule__Mult_expr__Group_1__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11704:1: rule__Mult_expr__Group_1__1 : rule__Mult_expr__Group_1__1__Impl rule__Mult_expr__Group_1__2 ;
    public final void rule__Mult_expr__Group_1__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11708:1: ( rule__Mult_expr__Group_1__1__Impl rule__Mult_expr__Group_1__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11709:2: rule__Mult_expr__Group_1__1__Impl rule__Mult_expr__Group_1__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Mult_expr__Group_1__1__Impl_in_rule__Mult_expr__Group_1__123745);
            rule__Mult_expr__Group_1__1__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Mult_expr__Group_1__2_in_rule__Mult_expr__Group_1__123748);
            rule__Mult_expr__Group_1__2();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Mult_expr__Group_1__1


    // $ANTLR start rule__Mult_expr__Group_1__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11716:1: rule__Mult_expr__Group_1__1__Impl : ( ( rule__Mult_expr__OperatorAssignment_1_1 ) ) ;
    public final void rule__Mult_expr__Group_1__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11720:1: ( ( ( rule__Mult_expr__OperatorAssignment_1_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11721:1: ( ( rule__Mult_expr__OperatorAssignment_1_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11721:1: ( ( rule__Mult_expr__OperatorAssignment_1_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11722:1: ( rule__Mult_expr__OperatorAssignment_1_1 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getMult_exprAccess().getOperatorAssignment_1_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11723:1: ( rule__Mult_expr__OperatorAssignment_1_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11723:2: rule__Mult_expr__OperatorAssignment_1_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Mult_expr__OperatorAssignment_1_1_in_rule__Mult_expr__Group_1__1__Impl23775);
            rule__Mult_expr__OperatorAssignment_1_1();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getMult_exprAccess().getOperatorAssignment_1_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Mult_expr__Group_1__1__Impl


    // $ANTLR start rule__Mult_expr__Group_1__2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11733:1: rule__Mult_expr__Group_1__2 : rule__Mult_expr__Group_1__2__Impl ;
    public final void rule__Mult_expr__Group_1__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11737:1: ( rule__Mult_expr__Group_1__2__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11738:2: rule__Mult_expr__Group_1__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Mult_expr__Group_1__2__Impl_in_rule__Mult_expr__Group_1__223805);
            rule__Mult_expr__Group_1__2__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Mult_expr__Group_1__2


    // $ANTLR start rule__Mult_expr__Group_1__2__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11744:1: rule__Mult_expr__Group_1__2__Impl : ( ( rule__Mult_expr__RightAssignment_1_2 ) ) ;
    public final void rule__Mult_expr__Group_1__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11748:1: ( ( ( rule__Mult_expr__RightAssignment_1_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11749:1: ( ( rule__Mult_expr__RightAssignment_1_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11749:1: ( ( rule__Mult_expr__RightAssignment_1_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11750:1: ( rule__Mult_expr__RightAssignment_1_2 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getMult_exprAccess().getRightAssignment_1_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11751:1: ( rule__Mult_expr__RightAssignment_1_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11751:2: rule__Mult_expr__RightAssignment_1_2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Mult_expr__RightAssignment_1_2_in_rule__Mult_expr__Group_1__2__Impl23832);
            rule__Mult_expr__RightAssignment_1_2();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getMult_exprAccess().getRightAssignment_1_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Mult_expr__Group_1__2__Impl


    // $ANTLR start rule__Unary_expr__Group_0__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11767:1: rule__Unary_expr__Group_0__0 : rule__Unary_expr__Group_0__0__Impl rule__Unary_expr__Group_0__1 ;
    public final void rule__Unary_expr__Group_0__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11771:1: ( rule__Unary_expr__Group_0__0__Impl rule__Unary_expr__Group_0__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11772:2: rule__Unary_expr__Group_0__0__Impl rule__Unary_expr__Group_0__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Unary_expr__Group_0__0__Impl_in_rule__Unary_expr__Group_0__023868);
            rule__Unary_expr__Group_0__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Unary_expr__Group_0__1_in_rule__Unary_expr__Group_0__023871);
            rule__Unary_expr__Group_0__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Unary_expr__Group_0__0


    // $ANTLR start rule__Unary_expr__Group_0__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11779:1: rule__Unary_expr__Group_0__0__Impl : ( () ) ;
    public final void rule__Unary_expr__Group_0__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11783:1: ( ( () ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11784:1: ( () )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11784:1: ( () )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11785:1: ()
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getUnary_exprAccess().getUnaryExpressionAction_0_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11786:1: ()
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11788:1: 
            {
            }

            if ( backtracking==0 ) {
               after(grammarAccess.getUnary_exprAccess().getUnaryExpressionAction_0_0()); 
            }

            }


            }

        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Unary_expr__Group_0__0__Impl


    // $ANTLR start rule__Unary_expr__Group_0__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11798:1: rule__Unary_expr__Group_0__1 : rule__Unary_expr__Group_0__1__Impl rule__Unary_expr__Group_0__2 ;
    public final void rule__Unary_expr__Group_0__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11802:1: ( rule__Unary_expr__Group_0__1__Impl rule__Unary_expr__Group_0__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11803:2: rule__Unary_expr__Group_0__1__Impl rule__Unary_expr__Group_0__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Unary_expr__Group_0__1__Impl_in_rule__Unary_expr__Group_0__123929);
            rule__Unary_expr__Group_0__1__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Unary_expr__Group_0__2_in_rule__Unary_expr__Group_0__123932);
            rule__Unary_expr__Group_0__2();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Unary_expr__Group_0__1


    // $ANTLR start rule__Unary_expr__Group_0__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11810:1: rule__Unary_expr__Group_0__1__Impl : ( ( rule__Unary_expr__OperatorAssignment_0_1 ) ) ;
    public final void rule__Unary_expr__Group_0__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11814:1: ( ( ( rule__Unary_expr__OperatorAssignment_0_1 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11815:1: ( ( rule__Unary_expr__OperatorAssignment_0_1 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11815:1: ( ( rule__Unary_expr__OperatorAssignment_0_1 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11816:1: ( rule__Unary_expr__OperatorAssignment_0_1 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getUnary_exprAccess().getOperatorAssignment_0_1()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11817:1: ( rule__Unary_expr__OperatorAssignment_0_1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11817:2: rule__Unary_expr__OperatorAssignment_0_1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Unary_expr__OperatorAssignment_0_1_in_rule__Unary_expr__Group_0__1__Impl23959);
            rule__Unary_expr__OperatorAssignment_0_1();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getUnary_exprAccess().getOperatorAssignment_0_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Unary_expr__Group_0__1__Impl


    // $ANTLR start rule__Unary_expr__Group_0__2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11827:1: rule__Unary_expr__Group_0__2 : rule__Unary_expr__Group_0__2__Impl ;
    public final void rule__Unary_expr__Group_0__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11831:1: ( rule__Unary_expr__Group_0__2__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11832:2: rule__Unary_expr__Group_0__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Unary_expr__Group_0__2__Impl_in_rule__Unary_expr__Group_0__223989);
            rule__Unary_expr__Group_0__2__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Unary_expr__Group_0__2


    // $ANTLR start rule__Unary_expr__Group_0__2__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11838:1: rule__Unary_expr__Group_0__2__Impl : ( ( rule__Unary_expr__ExpressionAssignment_0_2 ) ) ;
    public final void rule__Unary_expr__Group_0__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11842:1: ( ( ( rule__Unary_expr__ExpressionAssignment_0_2 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11843:1: ( ( rule__Unary_expr__ExpressionAssignment_0_2 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11843:1: ( ( rule__Unary_expr__ExpressionAssignment_0_2 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11844:1: ( rule__Unary_expr__ExpressionAssignment_0_2 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getUnary_exprAccess().getExpressionAssignment_0_2()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11845:1: ( rule__Unary_expr__ExpressionAssignment_0_2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11845:2: rule__Unary_expr__ExpressionAssignment_0_2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Unary_expr__ExpressionAssignment_0_2_in_rule__Unary_expr__Group_0__2__Impl24016);
            rule__Unary_expr__ExpressionAssignment_0_2();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getUnary_exprAccess().getExpressionAssignment_0_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Unary_expr__Group_0__2__Impl


    // $ANTLR start rule__Primary_expr__Group_2__0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11861:1: rule__Primary_expr__Group_2__0 : rule__Primary_expr__Group_2__0__Impl rule__Primary_expr__Group_2__1 ;
    public final void rule__Primary_expr__Group_2__0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11865:1: ( rule__Primary_expr__Group_2__0__Impl rule__Primary_expr__Group_2__1 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11866:2: rule__Primary_expr__Group_2__0__Impl rule__Primary_expr__Group_2__1
            {
            pushFollow(FollowSets000.FOLLOW_rule__Primary_expr__Group_2__0__Impl_in_rule__Primary_expr__Group_2__024052);
            rule__Primary_expr__Group_2__0__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Primary_expr__Group_2__1_in_rule__Primary_expr__Group_2__024055);
            rule__Primary_expr__Group_2__1();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Primary_expr__Group_2__0


    // $ANTLR start rule__Primary_expr__Group_2__0__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11873:1: rule__Primary_expr__Group_2__0__Impl : ( '(' ) ;
    public final void rule__Primary_expr__Group_2__0__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11877:1: ( ( '(' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11878:1: ( '(' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11878:1: ( '(' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11879:1: '('
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getPrimary_exprAccess().getLeftParenthesisKeyword_2_0()); 
            }
            match(input,50,FollowSets000.FOLLOW_50_in_rule__Primary_expr__Group_2__0__Impl24083); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getPrimary_exprAccess().getLeftParenthesisKeyword_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Primary_expr__Group_2__0__Impl


    // $ANTLR start rule__Primary_expr__Group_2__1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11892:1: rule__Primary_expr__Group_2__1 : rule__Primary_expr__Group_2__1__Impl rule__Primary_expr__Group_2__2 ;
    public final void rule__Primary_expr__Group_2__1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11896:1: ( rule__Primary_expr__Group_2__1__Impl rule__Primary_expr__Group_2__2 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11897:2: rule__Primary_expr__Group_2__1__Impl rule__Primary_expr__Group_2__2
            {
            pushFollow(FollowSets000.FOLLOW_rule__Primary_expr__Group_2__1__Impl_in_rule__Primary_expr__Group_2__124114);
            rule__Primary_expr__Group_2__1__Impl();
            _fsp--;
            if (failed) return ;
            pushFollow(FollowSets000.FOLLOW_rule__Primary_expr__Group_2__2_in_rule__Primary_expr__Group_2__124117);
            rule__Primary_expr__Group_2__2();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Primary_expr__Group_2__1


    // $ANTLR start rule__Primary_expr__Group_2__1__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11904:1: rule__Primary_expr__Group_2__1__Impl : ( ruleconst_exp ) ;
    public final void rule__Primary_expr__Group_2__1__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11908:1: ( ( ruleconst_exp ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11909:1: ( ruleconst_exp )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11909:1: ( ruleconst_exp )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11910:1: ruleconst_exp
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getPrimary_exprAccess().getConst_expParserRuleCall_2_1()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleconst_exp_in_rule__Primary_expr__Group_2__1__Impl24144);
            ruleconst_exp();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getPrimary_exprAccess().getConst_expParserRuleCall_2_1()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Primary_expr__Group_2__1__Impl


    // $ANTLR start rule__Primary_expr__Group_2__2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11921:1: rule__Primary_expr__Group_2__2 : rule__Primary_expr__Group_2__2__Impl ;
    public final void rule__Primary_expr__Group_2__2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11925:1: ( rule__Primary_expr__Group_2__2__Impl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11926:2: rule__Primary_expr__Group_2__2__Impl
            {
            pushFollow(FollowSets000.FOLLOW_rule__Primary_expr__Group_2__2__Impl_in_rule__Primary_expr__Group_2__224173);
            rule__Primary_expr__Group_2__2__Impl();
            _fsp--;
            if (failed) return ;

            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Primary_expr__Group_2__2


    // $ANTLR start rule__Primary_expr__Group_2__2__Impl
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11932:1: rule__Primary_expr__Group_2__2__Impl : ( ')' ) ;
    public final void rule__Primary_expr__Group_2__2__Impl() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11936:1: ( ( ')' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11937:1: ( ')' )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11937:1: ( ')' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11938:1: ')'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getPrimary_exprAccess().getRightParenthesisKeyword_2_2()); 
            }
            match(input,51,FollowSets000.FOLLOW_51_in_rule__Primary_expr__Group_2__2__Impl24201); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getPrimary_exprAccess().getRightParenthesisKeyword_2_2()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Primary_expr__Group_2__2__Impl


    // $ANTLR start rule__Specification__IncludesAssignment_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11958:1: rule__Specification__IncludesAssignment_1 : ( ruleinclude_decl ) ;
    public final void rule__Specification__IncludesAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11962:1: ( ( ruleinclude_decl ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11963:1: ( ruleinclude_decl )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11963:1: ( ruleinclude_decl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11964:1: ruleinclude_decl
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getSpecificationAccess().getIncludesInclude_declParserRuleCall_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleinclude_decl_in_rule__Specification__IncludesAssignment_124243);
            ruleinclude_decl();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getSpecificationAccess().getIncludesInclude_declParserRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Specification__IncludesAssignment_1


    // $ANTLR start rule__Specification__ContainsAssignment_2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11973:1: rule__Specification__ContainsAssignment_2 : ( ruledefinition ) ;
    public final void rule__Specification__ContainsAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11977:1: ( ( ruledefinition ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11978:1: ( ruledefinition )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11978:1: ( ruledefinition )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11979:1: ruledefinition
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getSpecificationAccess().getContainsDefinitionParserRuleCall_2_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruledefinition_in_rule__Specification__ContainsAssignment_224274);
            ruledefinition();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getSpecificationAccess().getContainsDefinitionParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Specification__ContainsAssignment_2


    // $ANTLR start rule__Include_decl__ImportURIAssignment_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11988:1: rule__Include_decl__ImportURIAssignment_1 : ( RULE_STRING ) ;
    public final void rule__Include_decl__ImportURIAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11992:1: ( ( RULE_STRING ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11993:1: ( RULE_STRING )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11993:1: ( RULE_STRING )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:11994:1: RULE_STRING
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getInclude_declAccess().getImportURISTRINGTerminalRuleCall_1_0()); 
            }
            match(input,RULE_STRING,FollowSets000.FOLLOW_RULE_STRING_in_rule__Include_decl__ImportURIAssignment_124305); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getInclude_declAccess().getImportURISTRINGTerminalRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Include_decl__ImportURIAssignment_1


    // $ANTLR start rule__Module__IdentifierAssignment_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12003:1: rule__Module__IdentifierAssignment_1 : ( RULE_ID ) ;
    public final void rule__Module__IdentifierAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12007:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12008:1: ( RULE_ID )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12008:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12009:1: RULE_ID
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getModuleAccess().getIdentifierIDTerminalRuleCall_1_0()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Module__IdentifierAssignment_124336); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getModuleAccess().getIdentifierIDTerminalRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Module__IdentifierAssignment_1


    // $ANTLR start rule__Module__ContainsAssignment_3_0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12018:1: rule__Module__ContainsAssignment_3_0 : ( ruledefinition ) ;
    public final void rule__Module__ContainsAssignment_3_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12022:1: ( ( ruledefinition ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12023:1: ( ruledefinition )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12023:1: ( ruledefinition )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12024:1: ruledefinition
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getModuleAccess().getContainsDefinitionParserRuleCall_3_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruledefinition_in_rule__Module__ContainsAssignment_3_024367);
            ruledefinition();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getModuleAccess().getContainsDefinitionParserRuleCall_3_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Module__ContainsAssignment_3_0


    // $ANTLR start rule__Interface_decl__IsAbstractAssignment_0_0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12033:1: rule__Interface_decl__IsAbstractAssignment_0_0 : ( ( 'abstract' ) ) ;
    public final void rule__Interface_decl__IsAbstractAssignment_0_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12037:1: ( ( ( 'abstract' ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12038:1: ( ( 'abstract' ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12038:1: ( ( 'abstract' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12039:1: ( 'abstract' )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getInterface_declAccess().getIsAbstractAbstractKeyword_0_0_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12040:1: ( 'abstract' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12041:1: 'abstract'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getInterface_declAccess().getIsAbstractAbstractKeyword_0_0_0()); 
            }
            match(input,30,FollowSets000.FOLLOW_30_in_rule__Interface_decl__IsAbstractAssignment_0_024403); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getInterface_declAccess().getIsAbstractAbstractKeyword_0_0_0()); 
            }

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getInterface_declAccess().getIsAbstractAbstractKeyword_0_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Interface_decl__IsAbstractAssignment_0_0


    // $ANTLR start rule__Interface_decl__IsCustomAssignment_0_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12056:1: rule__Interface_decl__IsCustomAssignment_0_1 : ( ( 'local' ) ) ;
    public final void rule__Interface_decl__IsCustomAssignment_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12060:1: ( ( ( 'local' ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12061:1: ( ( 'local' ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12061:1: ( ( 'local' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12062:1: ( 'local' )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getInterface_declAccess().getIsCustomLocalKeyword_0_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12063:1: ( 'local' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12064:1: 'local'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getInterface_declAccess().getIsCustomLocalKeyword_0_1_0()); 
            }
            match(input,31,FollowSets000.FOLLOW_31_in_rule__Interface_decl__IsCustomAssignment_0_124447); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getInterface_declAccess().getIsCustomLocalKeyword_0_1_0()); 
            }

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getInterface_declAccess().getIsCustomLocalKeyword_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Interface_decl__IsCustomAssignment_0_1


    // $ANTLR start rule__Interface_decl__IdentifierAssignment_2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12079:1: rule__Interface_decl__IdentifierAssignment_2 : ( RULE_ID ) ;
    public final void rule__Interface_decl__IdentifierAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12083:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12084:1: ( RULE_ID )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12084:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12085:1: RULE_ID
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getInterface_declAccess().getIdentifierIDTerminalRuleCall_2_0()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Interface_decl__IdentifierAssignment_224486); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getInterface_declAccess().getIdentifierIDTerminalRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Interface_decl__IdentifierAssignment_2


    // $ANTLR start rule__Interface_decl__DerivesFromAssignment_3_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12094:1: rule__Interface_decl__DerivesFromAssignment_3_1 : ( ( RULE_ID ) ) ;
    public final void rule__Interface_decl__DerivesFromAssignment_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12098:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12099:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12099:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12100:1: ( RULE_ID )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getInterface_declAccess().getDerivesFromInterfaceDefCrossReference_3_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12101:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12102:1: RULE_ID
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getInterface_declAccess().getDerivesFromInterfaceDefIDTerminalRuleCall_3_1_0_1()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Interface_decl__DerivesFromAssignment_3_124521); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getInterface_declAccess().getDerivesFromInterfaceDefIDTerminalRuleCall_3_1_0_1()); 
            }

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getInterface_declAccess().getDerivesFromInterfaceDefCrossReference_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Interface_decl__DerivesFromAssignment_3_1


    // $ANTLR start rule__Interface_decl__DerivesFromAssignment_3_2_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12113:1: rule__Interface_decl__DerivesFromAssignment_3_2_1 : ( ( RULE_ID ) ) ;
    public final void rule__Interface_decl__DerivesFromAssignment_3_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12117:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12118:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12118:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12119:1: ( RULE_ID )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getInterface_declAccess().getDerivesFromInterfaceDefCrossReference_3_2_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12120:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12121:1: RULE_ID
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getInterface_declAccess().getDerivesFromInterfaceDefIDTerminalRuleCall_3_2_1_0_1()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Interface_decl__DerivesFromAssignment_3_2_124560); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getInterface_declAccess().getDerivesFromInterfaceDefIDTerminalRuleCall_3_2_1_0_1()); 
            }

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getInterface_declAccess().getDerivesFromInterfaceDefCrossReference_3_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Interface_decl__DerivesFromAssignment_3_2_1


    // $ANTLR start rule__Interface_decl__ContainsAssignment_5_0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12132:1: rule__Interface_decl__ContainsAssignment_5_0 : ( ruleexport ) ;
    public final void rule__Interface_decl__ContainsAssignment_5_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12136:1: ( ( ruleexport ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12137:1: ( ruleexport )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12137:1: ( ruleexport )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12138:1: ruleexport
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getInterface_declAccess().getContainsExportParserRuleCall_5_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleexport_in_rule__Interface_decl__ContainsAssignment_5_024595);
            ruleexport();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getInterface_declAccess().getContainsExportParserRuleCall_5_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Interface_decl__ContainsAssignment_5_0


    // $ANTLR start rule__Interface_fwd__IdentifierAssignment_2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12147:1: rule__Interface_fwd__IdentifierAssignment_2 : ( RULE_ID ) ;
    public final void rule__Interface_fwd__IdentifierAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12151:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12152:1: ( RULE_ID )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12152:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12153:1: RULE_ID
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getInterface_fwdAccess().getIdentifierIDTerminalRuleCall_2_0()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Interface_fwd__IdentifierAssignment_224626); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getInterface_fwdAccess().getIdentifierIDTerminalRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Interface_fwd__IdentifierAssignment_2


    // $ANTLR start rule__Op_decl__IsOnewayAssignment_0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12162:1: rule__Op_decl__IsOnewayAssignment_0 : ( ( 'oneway' ) ) ;
    public final void rule__Op_decl__IsOnewayAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12166:1: ( ( ( 'oneway' ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12167:1: ( ( 'oneway' ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12167:1: ( ( 'oneway' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12168:1: ( 'oneway' )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getIsOnewayOnewayKeyword_0_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12169:1: ( 'oneway' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12170:1: 'oneway'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getIsOnewayOnewayKeyword_0_0()); 
            }
            match(input,75,FollowSets000.FOLLOW_75_in_rule__Op_decl__IsOnewayAssignment_024662); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getIsOnewayOnewayKeyword_0_0()); 
            }

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getIsOnewayOnewayKeyword_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__IsOnewayAssignment_0


    // $ANTLR start rule__Op_decl__ContainedTypeAssignment_1_0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12185:1: rule__Op_decl__ContainedTypeAssignment_1_0 : ( ruleop_type_spec ) ;
    public final void rule__Op_decl__ContainedTypeAssignment_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12189:1: ( ( ruleop_type_spec ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12190:1: ( ruleop_type_spec )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12190:1: ( ruleop_type_spec )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12191:1: ruleop_type_spec
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getContainedTypeOp_type_specParserRuleCall_1_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleop_type_spec_in_rule__Op_decl__ContainedTypeAssignment_1_024701);
            ruleop_type_spec();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getContainedTypeOp_type_specParserRuleCall_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__ContainedTypeAssignment_1_0


    // $ANTLR start rule__Op_decl__SharedTypeAssignment_1_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12200:1: rule__Op_decl__SharedTypeAssignment_1_1 : ( ( RULE_ID ) ) ;
    public final void rule__Op_decl__SharedTypeAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12204:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12205:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12205:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12206:1: ( RULE_ID )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getSharedTypeTypedefDefCrossReference_1_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12207:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12208:1: RULE_ID
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getSharedTypeTypedefDefIDTerminalRuleCall_1_1_0_1()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Op_decl__SharedTypeAssignment_1_124736); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getSharedTypeTypedefDefIDTerminalRuleCall_1_1_0_1()); 
            }

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getSharedTypeTypedefDefCrossReference_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__SharedTypeAssignment_1_1


    // $ANTLR start rule__Op_decl__IdentifierAssignment_2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12219:1: rule__Op_decl__IdentifierAssignment_2 : ( RULE_ID ) ;
    public final void rule__Op_decl__IdentifierAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12223:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12224:1: ( RULE_ID )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12224:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12225:1: RULE_ID
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getIdentifierIDTerminalRuleCall_2_0()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Op_decl__IdentifierAssignment_224771); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getIdentifierIDTerminalRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__IdentifierAssignment_2


    // $ANTLR start rule__Op_decl__ParametersAssignment_4_0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12234:1: rule__Op_decl__ParametersAssignment_4_0 : ( ruleparam_decl ) ;
    public final void rule__Op_decl__ParametersAssignment_4_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12238:1: ( ( ruleparam_decl ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12239:1: ( ruleparam_decl )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12239:1: ( ruleparam_decl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12240:1: ruleparam_decl
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getParametersParam_declParserRuleCall_4_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleparam_decl_in_rule__Op_decl__ParametersAssignment_4_024802);
            ruleparam_decl();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getParametersParam_declParserRuleCall_4_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__ParametersAssignment_4_0


    // $ANTLR start rule__Op_decl__ParametersAssignment_4_1_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12249:1: rule__Op_decl__ParametersAssignment_4_1_1 : ( ruleparam_decl ) ;
    public final void rule__Op_decl__ParametersAssignment_4_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12253:1: ( ( ruleparam_decl ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12254:1: ( ruleparam_decl )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12254:1: ( ruleparam_decl )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12255:1: ruleparam_decl
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getParametersParam_declParserRuleCall_4_1_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleparam_decl_in_rule__Op_decl__ParametersAssignment_4_1_124833);
            ruleparam_decl();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getParametersParam_declParserRuleCall_4_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__ParametersAssignment_4_1_1


    // $ANTLR start rule__Op_decl__CanRaiseAssignment_6_2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12264:1: rule__Op_decl__CanRaiseAssignment_6_2 : ( ( RULE_ID ) ) ;
    public final void rule__Op_decl__CanRaiseAssignment_6_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12268:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12269:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12269:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12270:1: ( RULE_ID )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getCanRaiseExceptionDefCrossReference_6_2_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12271:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12272:1: RULE_ID
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getCanRaiseExceptionDefIDTerminalRuleCall_6_2_0_1()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Op_decl__CanRaiseAssignment_6_224868); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getCanRaiseExceptionDefIDTerminalRuleCall_6_2_0_1()); 
            }

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getCanRaiseExceptionDefCrossReference_6_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__CanRaiseAssignment_6_2


    // $ANTLR start rule__Op_decl__CanRaiseAssignment_6_3_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12283:1: rule__Op_decl__CanRaiseAssignment_6_3_1 : ( ( RULE_ID ) ) ;
    public final void rule__Op_decl__CanRaiseAssignment_6_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12287:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12288:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12288:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12289:1: ( RULE_ID )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getCanRaiseExceptionDefCrossReference_6_3_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12290:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12291:1: RULE_ID
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getCanRaiseExceptionDefIDTerminalRuleCall_6_3_1_0_1()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Op_decl__CanRaiseAssignment_6_3_124907); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getCanRaiseExceptionDefIDTerminalRuleCall_6_3_1_0_1()); 
            }

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getCanRaiseExceptionDefCrossReference_6_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__CanRaiseAssignment_6_3_1


    // $ANTLR start rule__Op_decl__ContextsAssignment_7_2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12302:1: rule__Op_decl__ContextsAssignment_7_2 : ( RULE_STRING ) ;
    public final void rule__Op_decl__ContextsAssignment_7_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12306:1: ( ( RULE_STRING ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12307:1: ( RULE_STRING )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12307:1: ( RULE_STRING )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12308:1: RULE_STRING
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getContextsSTRINGTerminalRuleCall_7_2_0()); 
            }
            match(input,RULE_STRING,FollowSets000.FOLLOW_RULE_STRING_in_rule__Op_decl__ContextsAssignment_7_224942); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getContextsSTRINGTerminalRuleCall_7_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__ContextsAssignment_7_2


    // $ANTLR start rule__Op_decl__ContextsAssignment_7_3_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12317:1: rule__Op_decl__ContextsAssignment_7_3_1 : ( RULE_STRING ) ;
    public final void rule__Op_decl__ContextsAssignment_7_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12321:1: ( ( RULE_STRING ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12322:1: ( RULE_STRING )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12322:1: ( RULE_STRING )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12323:1: RULE_STRING
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOp_declAccess().getContextsSTRINGTerminalRuleCall_7_3_1_0()); 
            }
            match(input,RULE_STRING,FollowSets000.FOLLOW_RULE_STRING_in_rule__Op_decl__ContextsAssignment_7_3_124973); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getOp_declAccess().getContextsSTRINGTerminalRuleCall_7_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_decl__ContextsAssignment_7_3_1


    // $ANTLR start rule__Op_type_spec__KindAssignment_1_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12332:1: rule__Op_type_spec__KindAssignment_1_1 : ( rulevoid_type ) ;
    public final void rule__Op_type_spec__KindAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12336:1: ( ( rulevoid_type ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12337:1: ( rulevoid_type )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12337:1: ( rulevoid_type )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12338:1: rulevoid_type
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOp_type_specAccess().getKindVoid_typeEnumRuleCall_1_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulevoid_type_in_rule__Op_type_spec__KindAssignment_1_125004);
            rulevoid_type();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getOp_type_specAccess().getKindVoid_typeEnumRuleCall_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Op_type_spec__KindAssignment_1_1


    // $ANTLR start rule__Param_decl__DirectionAssignment_0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12347:1: rule__Param_decl__DirectionAssignment_0 : ( ruleparam_attribute ) ;
    public final void rule__Param_decl__DirectionAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12351:1: ( ( ruleparam_attribute ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12352:1: ( ruleparam_attribute )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12352:1: ( ruleparam_attribute )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12353:1: ruleparam_attribute
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getParam_declAccess().getDirectionParam_attributeEnumRuleCall_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleparam_attribute_in_rule__Param_decl__DirectionAssignment_025035);
            ruleparam_attribute();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getParam_declAccess().getDirectionParam_attributeEnumRuleCall_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Param_decl__DirectionAssignment_0


    // $ANTLR start rule__Param_decl__ContainedTypeAssignment_1_0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12362:1: rule__Param_decl__ContainedTypeAssignment_1_0 : ( rulebase_type_spec ) ;
    public final void rule__Param_decl__ContainedTypeAssignment_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12366:1: ( ( rulebase_type_spec ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12367:1: ( rulebase_type_spec )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12367:1: ( rulebase_type_spec )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12368:1: rulebase_type_spec
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getParam_declAccess().getContainedTypeBase_type_specParserRuleCall_1_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulebase_type_spec_in_rule__Param_decl__ContainedTypeAssignment_1_025066);
            rulebase_type_spec();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getParam_declAccess().getContainedTypeBase_type_specParserRuleCall_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Param_decl__ContainedTypeAssignment_1_0


    // $ANTLR start rule__Param_decl__SharedTypeAssignment_1_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12377:1: rule__Param_decl__SharedTypeAssignment_1_1 : ( ( RULE_ID ) ) ;
    public final void rule__Param_decl__SharedTypeAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12381:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12382:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12382:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12383:1: ( RULE_ID )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getParam_declAccess().getSharedTypeTypedefDefCrossReference_1_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12384:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12385:1: RULE_ID
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getParam_declAccess().getSharedTypeTypedefDefIDTerminalRuleCall_1_1_0_1()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Param_decl__SharedTypeAssignment_1_125101); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getParam_declAccess().getSharedTypeTypedefDefIDTerminalRuleCall_1_1_0_1()); 
            }

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getParam_declAccess().getSharedTypeTypedefDefCrossReference_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Param_decl__SharedTypeAssignment_1_1


    // $ANTLR start rule__Param_decl__IdentifierAssignment_2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12396:1: rule__Param_decl__IdentifierAssignment_2 : ( RULE_ID ) ;
    public final void rule__Param_decl__IdentifierAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12400:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12401:1: ( RULE_ID )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12401:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12402:1: RULE_ID
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getParam_declAccess().getIdentifierIDTerminalRuleCall_2_0()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Param_decl__IdentifierAssignment_225136); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getParam_declAccess().getIdentifierIDTerminalRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Param_decl__IdentifierAssignment_2


    // $ANTLR start rule__Readonly_attr_spec__IsReadonlyAssignment_0_0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12411:1: rule__Readonly_attr_spec__IsReadonlyAssignment_0_0 : ( ( 'readonly' ) ) ;
    public final void rule__Readonly_attr_spec__IsReadonlyAssignment_0_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12415:1: ( ( ( 'readonly' ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12416:1: ( ( 'readonly' ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12416:1: ( ( 'readonly' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12417:1: ( 'readonly' )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getIsReadonlyReadonlyKeyword_0_0_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12418:1: ( 'readonly' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12419:1: 'readonly'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getIsReadonlyReadonlyKeyword_0_0_0()); 
            }
            match(input,76,FollowSets000.FOLLOW_76_in_rule__Readonly_attr_spec__IsReadonlyAssignment_0_025172); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getIsReadonlyReadonlyKeyword_0_0_0()); 
            }

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getIsReadonlyReadonlyKeyword_0_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Readonly_attr_spec__IsReadonlyAssignment_0_0


    // $ANTLR start rule__Readonly_attr_spec__ContainedTypeAssignment_0_2_0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12434:1: rule__Readonly_attr_spec__ContainedTypeAssignment_0_2_0 : ( rulebase_type_spec ) ;
    public final void rule__Readonly_attr_spec__ContainedTypeAssignment_0_2_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12438:1: ( ( rulebase_type_spec ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12439:1: ( rulebase_type_spec )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12439:1: ( rulebase_type_spec )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12440:1: rulebase_type_spec
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getContainedTypeBase_type_specParserRuleCall_0_2_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulebase_type_spec_in_rule__Readonly_attr_spec__ContainedTypeAssignment_0_2_025211);
            rulebase_type_spec();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getContainedTypeBase_type_specParserRuleCall_0_2_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Readonly_attr_spec__ContainedTypeAssignment_0_2_0


    // $ANTLR start rule__Readonly_attr_spec__SharedTypeAssignment_0_2_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12449:1: rule__Readonly_attr_spec__SharedTypeAssignment_0_2_1 : ( ( RULE_ID ) ) ;
    public final void rule__Readonly_attr_spec__SharedTypeAssignment_0_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12453:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12454:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12454:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12455:1: ( RULE_ID )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getSharedTypeTypedefDefCrossReference_0_2_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12456:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12457:1: RULE_ID
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getSharedTypeTypedefDefIDTerminalRuleCall_0_2_1_0_1()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Readonly_attr_spec__SharedTypeAssignment_0_2_125246); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getSharedTypeTypedefDefIDTerminalRuleCall_0_2_1_0_1()); 
            }

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getSharedTypeTypedefDefCrossReference_0_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Readonly_attr_spec__SharedTypeAssignment_0_2_1


    // $ANTLR start rule__Readonly_attr_spec__IdentifierAssignment_0_3
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12468:1: rule__Readonly_attr_spec__IdentifierAssignment_0_3 : ( RULE_ID ) ;
    public final void rule__Readonly_attr_spec__IdentifierAssignment_0_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12472:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12473:1: ( RULE_ID )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12473:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12474:1: RULE_ID
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getIdentifierIDTerminalRuleCall_0_3_0()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Readonly_attr_spec__IdentifierAssignment_0_325281); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getIdentifierIDTerminalRuleCall_0_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Readonly_attr_spec__IdentifierAssignment_0_3


    // $ANTLR start rule__Readonly_attr_spec__GetRaisesAssignment_0_6
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12483:1: rule__Readonly_attr_spec__GetRaisesAssignment_0_6 : ( ( RULE_ID ) ) ;
    public final void rule__Readonly_attr_spec__GetRaisesAssignment_0_6() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12487:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12488:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12488:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12489:1: ( RULE_ID )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getGetRaisesExceptionDefCrossReference_0_6_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12490:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12491:1: RULE_ID
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getGetRaisesExceptionDefIDTerminalRuleCall_0_6_0_1()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Readonly_attr_spec__GetRaisesAssignment_0_625316); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getGetRaisesExceptionDefIDTerminalRuleCall_0_6_0_1()); 
            }

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getGetRaisesExceptionDefCrossReference_0_6_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Readonly_attr_spec__GetRaisesAssignment_0_6


    // $ANTLR start rule__Readonly_attr_spec__GetRaisesAssignment_0_7_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12502:1: rule__Readonly_attr_spec__GetRaisesAssignment_0_7_1 : ( ( RULE_ID ) ) ;
    public final void rule__Readonly_attr_spec__GetRaisesAssignment_0_7_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12506:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12507:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12507:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12508:1: ( RULE_ID )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getGetRaisesExceptionDefCrossReference_0_7_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12509:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12510:1: RULE_ID
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getGetRaisesExceptionDefIDTerminalRuleCall_0_7_1_0_1()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Readonly_attr_spec__GetRaisesAssignment_0_7_125355); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getGetRaisesExceptionDefIDTerminalRuleCall_0_7_1_0_1()); 
            }

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getGetRaisesExceptionDefCrossReference_0_7_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Readonly_attr_spec__GetRaisesAssignment_0_7_1


    // $ANTLR start rule__Readonly_attr_spec__IsReadonlyAssignment_1_0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12521:1: rule__Readonly_attr_spec__IsReadonlyAssignment_1_0 : ( ( 'readonly' ) ) ;
    public final void rule__Readonly_attr_spec__IsReadonlyAssignment_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12525:1: ( ( ( 'readonly' ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12526:1: ( ( 'readonly' ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12526:1: ( ( 'readonly' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12527:1: ( 'readonly' )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getIsReadonlyReadonlyKeyword_1_0_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12528:1: ( 'readonly' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12529:1: 'readonly'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getIsReadonlyReadonlyKeyword_1_0_0()); 
            }
            match(input,76,FollowSets000.FOLLOW_76_in_rule__Readonly_attr_spec__IsReadonlyAssignment_1_025395); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getIsReadonlyReadonlyKeyword_1_0_0()); 
            }

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getIsReadonlyReadonlyKeyword_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Readonly_attr_spec__IsReadonlyAssignment_1_0


    // $ANTLR start rule__Readonly_attr_spec__ContainedTypeAssignment_1_2_0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12544:1: rule__Readonly_attr_spec__ContainedTypeAssignment_1_2_0 : ( rulebase_type_spec ) ;
    public final void rule__Readonly_attr_spec__ContainedTypeAssignment_1_2_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12548:1: ( ( rulebase_type_spec ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12549:1: ( rulebase_type_spec )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12549:1: ( rulebase_type_spec )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12550:1: rulebase_type_spec
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getContainedTypeBase_type_specParserRuleCall_1_2_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulebase_type_spec_in_rule__Readonly_attr_spec__ContainedTypeAssignment_1_2_025434);
            rulebase_type_spec();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getContainedTypeBase_type_specParserRuleCall_1_2_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Readonly_attr_spec__ContainedTypeAssignment_1_2_0


    // $ANTLR start rule__Readonly_attr_spec__SharedTypeAssignment_1_2_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12559:1: rule__Readonly_attr_spec__SharedTypeAssignment_1_2_1 : ( ( RULE_ID ) ) ;
    public final void rule__Readonly_attr_spec__SharedTypeAssignment_1_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12563:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12564:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12564:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12565:1: ( RULE_ID )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getSharedTypeTypedefDefCrossReference_1_2_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12566:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12567:1: RULE_ID
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getSharedTypeTypedefDefIDTerminalRuleCall_1_2_1_0_1()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Readonly_attr_spec__SharedTypeAssignment_1_2_125469); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getSharedTypeTypedefDefIDTerminalRuleCall_1_2_1_0_1()); 
            }

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getSharedTypeTypedefDefCrossReference_1_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Readonly_attr_spec__SharedTypeAssignment_1_2_1


    // $ANTLR start rule__Readonly_attr_spec__IdentifierAssignment_1_3
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12578:1: rule__Readonly_attr_spec__IdentifierAssignment_1_3 : ( RULE_ID ) ;
    public final void rule__Readonly_attr_spec__IdentifierAssignment_1_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12582:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12583:1: ( RULE_ID )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12583:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12584:1: RULE_ID
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getReadonly_attr_specAccess().getIdentifierIDTerminalRuleCall_1_3_0()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Readonly_attr_spec__IdentifierAssignment_1_325504); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getReadonly_attr_specAccess().getIdentifierIDTerminalRuleCall_1_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Readonly_attr_spec__IdentifierAssignment_1_3


    // $ANTLR start rule__Attr_spec__ContainedTypeAssignment_0_1_0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12593:1: rule__Attr_spec__ContainedTypeAssignment_0_1_0 : ( rulebase_type_spec ) ;
    public final void rule__Attr_spec__ContainedTypeAssignment_0_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12597:1: ( ( rulebase_type_spec ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12598:1: ( rulebase_type_spec )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12598:1: ( rulebase_type_spec )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12599:1: rulebase_type_spec
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getContainedTypeBase_type_specParserRuleCall_0_1_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulebase_type_spec_in_rule__Attr_spec__ContainedTypeAssignment_0_1_025535);
            rulebase_type_spec();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getContainedTypeBase_type_specParserRuleCall_0_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__ContainedTypeAssignment_0_1_0


    // $ANTLR start rule__Attr_spec__SharedTypeAssignment_0_1_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12608:1: rule__Attr_spec__SharedTypeAssignment_0_1_1 : ( ( RULE_ID ) ) ;
    public final void rule__Attr_spec__SharedTypeAssignment_0_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12612:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12613:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12613:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12614:1: ( RULE_ID )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getSharedTypeTypedefDefCrossReference_0_1_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12615:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12616:1: RULE_ID
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getSharedTypeTypedefDefIDTerminalRuleCall_0_1_1_0_1()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Attr_spec__SharedTypeAssignment_0_1_125570); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getSharedTypeTypedefDefIDTerminalRuleCall_0_1_1_0_1()); 
            }

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getSharedTypeTypedefDefCrossReference_0_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__SharedTypeAssignment_0_1_1


    // $ANTLR start rule__Attr_spec__IdentifierAssignment_0_2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12627:1: rule__Attr_spec__IdentifierAssignment_0_2 : ( RULE_ID ) ;
    public final void rule__Attr_spec__IdentifierAssignment_0_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12631:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12632:1: ( RULE_ID )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12632:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12633:1: RULE_ID
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getIdentifierIDTerminalRuleCall_0_2_0()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Attr_spec__IdentifierAssignment_0_225605); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getIdentifierIDTerminalRuleCall_0_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__IdentifierAssignment_0_2


    // $ANTLR start rule__Attr_spec__GetRaisesAssignment_0_3_0_2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12642:1: rule__Attr_spec__GetRaisesAssignment_0_3_0_2 : ( ( RULE_ID ) ) ;
    public final void rule__Attr_spec__GetRaisesAssignment_0_3_0_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12646:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12647:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12647:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12648:1: ( RULE_ID )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getGetRaisesExceptionDefCrossReference_0_3_0_2_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12649:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12650:1: RULE_ID
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getGetRaisesExceptionDefIDTerminalRuleCall_0_3_0_2_0_1()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Attr_spec__GetRaisesAssignment_0_3_0_225640); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getGetRaisesExceptionDefIDTerminalRuleCall_0_3_0_2_0_1()); 
            }

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getGetRaisesExceptionDefCrossReference_0_3_0_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__GetRaisesAssignment_0_3_0_2


    // $ANTLR start rule__Attr_spec__GetRaisesAssignment_0_3_0_3_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12661:1: rule__Attr_spec__GetRaisesAssignment_0_3_0_3_1 : ( ( RULE_ID ) ) ;
    public final void rule__Attr_spec__GetRaisesAssignment_0_3_0_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12665:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12666:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12666:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12667:1: ( RULE_ID )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getGetRaisesExceptionDefCrossReference_0_3_0_3_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12668:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12669:1: RULE_ID
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getGetRaisesExceptionDefIDTerminalRuleCall_0_3_0_3_1_0_1()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Attr_spec__GetRaisesAssignment_0_3_0_3_125679); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getGetRaisesExceptionDefIDTerminalRuleCall_0_3_0_3_1_0_1()); 
            }

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getGetRaisesExceptionDefCrossReference_0_3_0_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__GetRaisesAssignment_0_3_0_3_1


    // $ANTLR start rule__Attr_spec__SetRaisesAssignment_0_3_0_5_2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12680:1: rule__Attr_spec__SetRaisesAssignment_0_3_0_5_2 : ( ( RULE_ID ) ) ;
    public final void rule__Attr_spec__SetRaisesAssignment_0_3_0_5_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12684:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12685:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12685:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12686:1: ( RULE_ID )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getSetRaisesExceptionDefCrossReference_0_3_0_5_2_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12687:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12688:1: RULE_ID
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getSetRaisesExceptionDefIDTerminalRuleCall_0_3_0_5_2_0_1()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Attr_spec__SetRaisesAssignment_0_3_0_5_225718); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getSetRaisesExceptionDefIDTerminalRuleCall_0_3_0_5_2_0_1()); 
            }

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getSetRaisesExceptionDefCrossReference_0_3_0_5_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__SetRaisesAssignment_0_3_0_5_2


    // $ANTLR start rule__Attr_spec__SetRaisesAssignment_0_3_0_5_3_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12699:1: rule__Attr_spec__SetRaisesAssignment_0_3_0_5_3_1 : ( ( RULE_ID ) ) ;
    public final void rule__Attr_spec__SetRaisesAssignment_0_3_0_5_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12703:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12704:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12704:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12705:1: ( RULE_ID )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getSetRaisesExceptionDefCrossReference_0_3_0_5_3_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12706:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12707:1: RULE_ID
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getSetRaisesExceptionDefIDTerminalRuleCall_0_3_0_5_3_1_0_1()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Attr_spec__SetRaisesAssignment_0_3_0_5_3_125757); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getSetRaisesExceptionDefIDTerminalRuleCall_0_3_0_5_3_1_0_1()); 
            }

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getSetRaisesExceptionDefCrossReference_0_3_0_5_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__SetRaisesAssignment_0_3_0_5_3_1


    // $ANTLR start rule__Attr_spec__SetRaisesAssignment_0_3_1_2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12718:1: rule__Attr_spec__SetRaisesAssignment_0_3_1_2 : ( ( RULE_ID ) ) ;
    public final void rule__Attr_spec__SetRaisesAssignment_0_3_1_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12722:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12723:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12723:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12724:1: ( RULE_ID )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getSetRaisesExceptionDefCrossReference_0_3_1_2_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12725:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12726:1: RULE_ID
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getSetRaisesExceptionDefIDTerminalRuleCall_0_3_1_2_0_1()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Attr_spec__SetRaisesAssignment_0_3_1_225796); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getSetRaisesExceptionDefIDTerminalRuleCall_0_3_1_2_0_1()); 
            }

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getSetRaisesExceptionDefCrossReference_0_3_1_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__SetRaisesAssignment_0_3_1_2


    // $ANTLR start rule__Attr_spec__SetRaisesAssignment_0_3_1_3_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12737:1: rule__Attr_spec__SetRaisesAssignment_0_3_1_3_1 : ( ( RULE_ID ) ) ;
    public final void rule__Attr_spec__SetRaisesAssignment_0_3_1_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12741:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12742:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12742:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12743:1: ( RULE_ID )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getSetRaisesExceptionDefCrossReference_0_3_1_3_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12744:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12745:1: RULE_ID
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getSetRaisesExceptionDefIDTerminalRuleCall_0_3_1_3_1_0_1()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Attr_spec__SetRaisesAssignment_0_3_1_3_125835); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getSetRaisesExceptionDefIDTerminalRuleCall_0_3_1_3_1_0_1()); 
            }

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getSetRaisesExceptionDefCrossReference_0_3_1_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__SetRaisesAssignment_0_3_1_3_1


    // $ANTLR start rule__Attr_spec__ContainedTypeAssignment_1_1_0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12756:1: rule__Attr_spec__ContainedTypeAssignment_1_1_0 : ( rulebase_type_spec ) ;
    public final void rule__Attr_spec__ContainedTypeAssignment_1_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12760:1: ( ( rulebase_type_spec ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12761:1: ( rulebase_type_spec )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12761:1: ( rulebase_type_spec )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12762:1: rulebase_type_spec
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getContainedTypeBase_type_specParserRuleCall_1_1_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulebase_type_spec_in_rule__Attr_spec__ContainedTypeAssignment_1_1_025870);
            rulebase_type_spec();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getContainedTypeBase_type_specParserRuleCall_1_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__ContainedTypeAssignment_1_1_0


    // $ANTLR start rule__Attr_spec__SharedTypeAssignment_1_1_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12771:1: rule__Attr_spec__SharedTypeAssignment_1_1_1 : ( ( RULE_ID ) ) ;
    public final void rule__Attr_spec__SharedTypeAssignment_1_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12775:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12776:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12776:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12777:1: ( RULE_ID )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getSharedTypeTypedefDefCrossReference_1_1_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12778:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12779:1: RULE_ID
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getSharedTypeTypedefDefIDTerminalRuleCall_1_1_1_0_1()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Attr_spec__SharedTypeAssignment_1_1_125905); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getSharedTypeTypedefDefIDTerminalRuleCall_1_1_1_0_1()); 
            }

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getSharedTypeTypedefDefCrossReference_1_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__SharedTypeAssignment_1_1_1


    // $ANTLR start rule__Attr_spec__IdentifierAssignment_1_2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12790:1: rule__Attr_spec__IdentifierAssignment_1_2 : ( RULE_ID ) ;
    public final void rule__Attr_spec__IdentifierAssignment_1_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12794:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12795:1: ( RULE_ID )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12795:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12796:1: RULE_ID
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAttr_specAccess().getIdentifierIDTerminalRuleCall_1_2_0()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Attr_spec__IdentifierAssignment_1_225940); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getAttr_specAccess().getIdentifierIDTerminalRuleCall_1_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Attr_spec__IdentifierAssignment_1_2


    // $ANTLR start rule__Except_decl__IdentifierAssignment_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12805:1: rule__Except_decl__IdentifierAssignment_1 : ( RULE_ID ) ;
    public final void rule__Except_decl__IdentifierAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12809:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12810:1: ( RULE_ID )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12810:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12811:1: RULE_ID
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getExcept_declAccess().getIdentifierIDTerminalRuleCall_1_0()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Except_decl__IdentifierAssignment_125971); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getExcept_declAccess().getIdentifierIDTerminalRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Except_decl__IdentifierAssignment_1


    // $ANTLR start rule__Except_decl__MembersAssignment_3
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12820:1: rule__Except_decl__MembersAssignment_3 : ( rulemember ) ;
    public final void rule__Except_decl__MembersAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12824:1: ( ( rulemember ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12825:1: ( rulemember )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12825:1: ( rulemember )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12826:1: rulemember
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getExcept_declAccess().getMembersMemberParserRuleCall_3_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulemember_in_rule__Except_decl__MembersAssignment_326002);
            rulemember();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getExcept_declAccess().getMembersMemberParserRuleCall_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Except_decl__MembersAssignment_3


    // $ANTLR start rule__Alias_type__ContainedTypeAssignment_0_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12835:1: rule__Alias_type__ContainedTypeAssignment_0_1 : ( rulearray_type_spec ) ;
    public final void rule__Alias_type__ContainedTypeAssignment_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12839:1: ( ( rulearray_type_spec ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12840:1: ( rulearray_type_spec )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12840:1: ( rulearray_type_spec )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12841:1: rulearray_type_spec
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAlias_typeAccess().getContainedTypeArray_type_specParserRuleCall_0_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulearray_type_spec_in_rule__Alias_type__ContainedTypeAssignment_0_126033);
            rulearray_type_spec();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getAlias_typeAccess().getContainedTypeArray_type_specParserRuleCall_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Alias_type__ContainedTypeAssignment_0_1


    // $ANTLR start rule__Alias_type__ContainedTypeAssignment_1_1_0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12850:1: rule__Alias_type__ContainedTypeAssignment_1_1_0 : ( rulesimple_type_spec ) ;
    public final void rule__Alias_type__ContainedTypeAssignment_1_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12854:1: ( ( rulesimple_type_spec ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12855:1: ( rulesimple_type_spec )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12855:1: ( rulesimple_type_spec )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12856:1: rulesimple_type_spec
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAlias_typeAccess().getContainedTypeSimple_type_specParserRuleCall_1_1_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulesimple_type_spec_in_rule__Alias_type__ContainedTypeAssignment_1_1_026064);
            rulesimple_type_spec();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getAlias_typeAccess().getContainedTypeSimple_type_specParserRuleCall_1_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Alias_type__ContainedTypeAssignment_1_1_0


    // $ANTLR start rule__Alias_type__SharedTypeAssignment_1_1_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12865:1: rule__Alias_type__SharedTypeAssignment_1_1_1 : ( ( RULE_ID ) ) ;
    public final void rule__Alias_type__SharedTypeAssignment_1_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12869:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12870:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12870:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12871:1: ( RULE_ID )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAlias_typeAccess().getSharedTypeTypedefDefCrossReference_1_1_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12872:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12873:1: RULE_ID
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAlias_typeAccess().getSharedTypeTypedefDefIDTerminalRuleCall_1_1_1_0_1()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Alias_type__SharedTypeAssignment_1_1_126099); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getAlias_typeAccess().getSharedTypeTypedefDefIDTerminalRuleCall_1_1_1_0_1()); 
            }

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getAlias_typeAccess().getSharedTypeTypedefDefCrossReference_1_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Alias_type__SharedTypeAssignment_1_1_1


    // $ANTLR start rule__Alias_type__IdentifierAssignment_1_2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12884:1: rule__Alias_type__IdentifierAssignment_1_2 : ( RULE_ID ) ;
    public final void rule__Alias_type__IdentifierAssignment_1_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12888:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12889:1: ( RULE_ID )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12889:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12890:1: RULE_ID
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAlias_typeAccess().getIdentifierIDTerminalRuleCall_1_2_0()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Alias_type__IdentifierAssignment_1_226134); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getAlias_typeAccess().getIdentifierIDTerminalRuleCall_1_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Alias_type__IdentifierAssignment_1_2


    // $ANTLR start rule__Array_type_spec__ContainedTypeAssignment_0_0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12899:1: rule__Array_type_spec__ContainedTypeAssignment_0_0 : ( rulesimple_type_spec ) ;
    public final void rule__Array_type_spec__ContainedTypeAssignment_0_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12903:1: ( ( rulesimple_type_spec ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12904:1: ( rulesimple_type_spec )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12904:1: ( rulesimple_type_spec )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12905:1: rulesimple_type_spec
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getArray_type_specAccess().getContainedTypeSimple_type_specParserRuleCall_0_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulesimple_type_spec_in_rule__Array_type_spec__ContainedTypeAssignment_0_026165);
            rulesimple_type_spec();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getArray_type_specAccess().getContainedTypeSimple_type_specParserRuleCall_0_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Array_type_spec__ContainedTypeAssignment_0_0


    // $ANTLR start rule__Array_type_spec__SharedTypeAssignment_0_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12914:1: rule__Array_type_spec__SharedTypeAssignment_0_1 : ( ( RULE_ID ) ) ;
    public final void rule__Array_type_spec__SharedTypeAssignment_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12918:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12919:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12919:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12920:1: ( RULE_ID )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getArray_type_specAccess().getSharedTypeTypedefDefCrossReference_0_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12921:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12922:1: RULE_ID
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getArray_type_specAccess().getSharedTypeTypedefDefIDTerminalRuleCall_0_1_0_1()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Array_type_spec__SharedTypeAssignment_0_126200); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getArray_type_specAccess().getSharedTypeTypedefDefIDTerminalRuleCall_0_1_0_1()); 
            }

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getArray_type_specAccess().getSharedTypeTypedefDefCrossReference_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Array_type_spec__SharedTypeAssignment_0_1


    // $ANTLR start rule__Array_type_spec__NameAssignment_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12933:1: rule__Array_type_spec__NameAssignment_1 : ( RULE_ID ) ;
    public final void rule__Array_type_spec__NameAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12937:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12938:1: ( RULE_ID )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12938:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12939:1: RULE_ID
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getArray_type_specAccess().getNameIDTerminalRuleCall_1_0()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Array_type_spec__NameAssignment_126235); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getArray_type_specAccess().getNameIDTerminalRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Array_type_spec__NameAssignment_1


    // $ANTLR start rule__Array_type_spec__BoundsAssignment_2_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12948:1: rule__Array_type_spec__BoundsAssignment_2_1 : ( ruleconst_exp ) ;
    public final void rule__Array_type_spec__BoundsAssignment_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12952:1: ( ( ruleconst_exp ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12953:1: ( ruleconst_exp )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12953:1: ( ruleconst_exp )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12954:1: ruleconst_exp
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getArray_type_specAccess().getBoundsConst_expParserRuleCall_2_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleconst_exp_in_rule__Array_type_spec__BoundsAssignment_2_126266);
            ruleconst_exp();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getArray_type_specAccess().getBoundsConst_expParserRuleCall_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Array_type_spec__BoundsAssignment_2_1


    // $ANTLR start rule__Base_type_spec__KindAssignment_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12963:1: rule__Base_type_spec__KindAssignment_1 : ( ruleobject_type ) ;
    public final void rule__Base_type_spec__KindAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12967:1: ( ( ruleobject_type ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12968:1: ( ruleobject_type )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12968:1: ( ruleobject_type )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12969:1: ruleobject_type
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getBase_type_specAccess().getKindObject_typeEnumRuleCall_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleobject_type_in_rule__Base_type_spec__KindAssignment_126297);
            ruleobject_type();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getBase_type_specAccess().getKindObject_typeEnumRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Base_type_spec__KindAssignment_1


    // $ANTLR start rule__Struct_type__IdentifierAssignment_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12978:1: rule__Struct_type__IdentifierAssignment_1 : ( RULE_ID ) ;
    public final void rule__Struct_type__IdentifierAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12982:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12983:1: ( RULE_ID )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12983:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12984:1: RULE_ID
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getStruct_typeAccess().getIdentifierIDTerminalRuleCall_1_0()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Struct_type__IdentifierAssignment_126328); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getStruct_typeAccess().getIdentifierIDTerminalRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Struct_type__IdentifierAssignment_1


    // $ANTLR start rule__Struct_type__MembersAssignment_3
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12993:1: rule__Struct_type__MembersAssignment_3 : ( rulemember ) ;
    public final void rule__Struct_type__MembersAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12997:1: ( ( rulemember ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12998:1: ( rulemember )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12998:1: ( rulemember )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:12999:1: rulemember
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getStruct_typeAccess().getMembersMemberParserRuleCall_3_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulemember_in_rule__Struct_type__MembersAssignment_326359);
            rulemember();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getStruct_typeAccess().getMembersMemberParserRuleCall_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Struct_type__MembersAssignment_3


    // $ANTLR start rule__Member__ContainedTypeAssignment_0_0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13008:1: rule__Member__ContainedTypeAssignment_0_0 : ( rulearray_type_spec ) ;
    public final void rule__Member__ContainedTypeAssignment_0_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13012:1: ( ( rulearray_type_spec ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13013:1: ( rulearray_type_spec )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13013:1: ( rulearray_type_spec )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13014:1: rulearray_type_spec
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getMemberAccess().getContainedTypeArray_type_specParserRuleCall_0_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulearray_type_spec_in_rule__Member__ContainedTypeAssignment_0_026390);
            rulearray_type_spec();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getMemberAccess().getContainedTypeArray_type_specParserRuleCall_0_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Member__ContainedTypeAssignment_0_0


    // $ANTLR start rule__Member__ContainedTypeAssignment_1_0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13023:1: rule__Member__ContainedTypeAssignment_1_0 : ( rulesimple_type_spec ) ;
    public final void rule__Member__ContainedTypeAssignment_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13027:1: ( ( rulesimple_type_spec ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13028:1: ( rulesimple_type_spec )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13028:1: ( rulesimple_type_spec )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13029:1: rulesimple_type_spec
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getMemberAccess().getContainedTypeSimple_type_specParserRuleCall_1_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulesimple_type_spec_in_rule__Member__ContainedTypeAssignment_1_026421);
            rulesimple_type_spec();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getMemberAccess().getContainedTypeSimple_type_specParserRuleCall_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Member__ContainedTypeAssignment_1_0


    // $ANTLR start rule__Member__IdentifierAssignment_1_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13038:1: rule__Member__IdentifierAssignment_1_1 : ( RULE_ID ) ;
    public final void rule__Member__IdentifierAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13042:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13043:1: ( RULE_ID )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13043:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13044:1: RULE_ID
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getMemberAccess().getIdentifierIDTerminalRuleCall_1_1_0()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Member__IdentifierAssignment_1_126452); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getMemberAccess().getIdentifierIDTerminalRuleCall_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Member__IdentifierAssignment_1_1


    // $ANTLR start rule__Member__ContainedTypeAssignment_2_0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13053:1: rule__Member__ContainedTypeAssignment_2_0 : ( rulestruct_type ) ;
    public final void rule__Member__ContainedTypeAssignment_2_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13057:1: ( ( rulestruct_type ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13058:1: ( rulestruct_type )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13058:1: ( rulestruct_type )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13059:1: rulestruct_type
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getMemberAccess().getContainedTypeStruct_typeParserRuleCall_2_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulestruct_type_in_rule__Member__ContainedTypeAssignment_2_026483);
            rulestruct_type();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getMemberAccess().getContainedTypeStruct_typeParserRuleCall_2_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Member__ContainedTypeAssignment_2_0


    // $ANTLR start rule__Member__IdentifierAssignment_2_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13068:1: rule__Member__IdentifierAssignment_2_1 : ( RULE_ID ) ;
    public final void rule__Member__IdentifierAssignment_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13072:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13073:1: ( RULE_ID )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13073:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13074:1: RULE_ID
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getMemberAccess().getIdentifierIDTerminalRuleCall_2_1_0()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Member__IdentifierAssignment_2_126514); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getMemberAccess().getIdentifierIDTerminalRuleCall_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Member__IdentifierAssignment_2_1


    // $ANTLR start rule__Member__SharedTypeAssignment_3_0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13083:1: rule__Member__SharedTypeAssignment_3_0 : ( ( RULE_ID ) ) ;
    public final void rule__Member__SharedTypeAssignment_3_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13087:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13088:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13088:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13089:1: ( RULE_ID )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getMemberAccess().getSharedTypeTypedefDefCrossReference_3_0_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13090:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13091:1: RULE_ID
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getMemberAccess().getSharedTypeTypedefDefIDTerminalRuleCall_3_0_0_1()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Member__SharedTypeAssignment_3_026549); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getMemberAccess().getSharedTypeTypedefDefIDTerminalRuleCall_3_0_0_1()); 
            }

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getMemberAccess().getSharedTypeTypedefDefCrossReference_3_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Member__SharedTypeAssignment_3_0


    // $ANTLR start rule__Member__IdentifierAssignment_3_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13102:1: rule__Member__IdentifierAssignment_3_1 : ( RULE_ID ) ;
    public final void rule__Member__IdentifierAssignment_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13106:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13107:1: ( RULE_ID )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13107:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13108:1: RULE_ID
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getMemberAccess().getIdentifierIDTerminalRuleCall_3_1_0()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Member__IdentifierAssignment_3_126584); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getMemberAccess().getIdentifierIDTerminalRuleCall_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Member__IdentifierAssignment_3_1


    // $ANTLR start rule__Union_type__IdentifierAssignment_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13117:1: rule__Union_type__IdentifierAssignment_1 : ( RULE_ID ) ;
    public final void rule__Union_type__IdentifierAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13121:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13122:1: ( RULE_ID )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13122:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13123:1: RULE_ID
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getUnion_typeAccess().getIdentifierIDTerminalRuleCall_1_0()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Union_type__IdentifierAssignment_126615); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getUnion_typeAccess().getIdentifierIDTerminalRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Union_type__IdentifierAssignment_1


    // $ANTLR start rule__Union_type__ContainedDiscrimAssignment_4_0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13132:1: rule__Union_type__ContainedDiscrimAssignment_4_0 : ( ruleswitch_type_spec_cont ) ;
    public final void rule__Union_type__ContainedDiscrimAssignment_4_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13136:1: ( ( ruleswitch_type_spec_cont ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13137:1: ( ruleswitch_type_spec_cont )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13137:1: ( ruleswitch_type_spec_cont )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13138:1: ruleswitch_type_spec_cont
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getUnion_typeAccess().getContainedDiscrimSwitch_type_spec_contParserRuleCall_4_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleswitch_type_spec_cont_in_rule__Union_type__ContainedDiscrimAssignment_4_026646);
            ruleswitch_type_spec_cont();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getUnion_typeAccess().getContainedDiscrimSwitch_type_spec_contParserRuleCall_4_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Union_type__ContainedDiscrimAssignment_4_0


    // $ANTLR start rule__Union_type__SharedDiscrimAssignment_4_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13147:1: rule__Union_type__SharedDiscrimAssignment_4_1 : ( ( RULE_ID ) ) ;
    public final void rule__Union_type__SharedDiscrimAssignment_4_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13151:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13152:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13152:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13153:1: ( RULE_ID )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getUnion_typeAccess().getSharedDiscrimEnumDefCrossReference_4_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13154:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13155:1: RULE_ID
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getUnion_typeAccess().getSharedDiscrimEnumDefIDTerminalRuleCall_4_1_0_1()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Union_type__SharedDiscrimAssignment_4_126681); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getUnion_typeAccess().getSharedDiscrimEnumDefIDTerminalRuleCall_4_1_0_1()); 
            }

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getUnion_typeAccess().getSharedDiscrimEnumDefCrossReference_4_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Union_type__SharedDiscrimAssignment_4_1


    // $ANTLR start rule__Union_type__UnionMembersAssignment_7
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13166:1: rule__Union_type__UnionMembersAssignment_7 : ( rulecase_stmt ) ;
    public final void rule__Union_type__UnionMembersAssignment_7() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13170:1: ( ( rulecase_stmt ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13171:1: ( rulecase_stmt )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13171:1: ( rulecase_stmt )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13172:1: rulecase_stmt
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getUnion_typeAccess().getUnionMembersCase_stmtParserRuleCall_7_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulecase_stmt_in_rule__Union_type__UnionMembersAssignment_726716);
            rulecase_stmt();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getUnion_typeAccess().getUnionMembersCase_stmtParserRuleCall_7_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Union_type__UnionMembersAssignment_7


    // $ANTLR start rule__Switch_type_spec_cont__KindAssignment_1_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13181:1: rule__Switch_type_spec_cont__KindAssignment_1_1 : ( rulechar_type ) ;
    public final void rule__Switch_type_spec_cont__KindAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13185:1: ( ( rulechar_type ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13186:1: ( rulechar_type )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13186:1: ( rulechar_type )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13187:1: rulechar_type
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getSwitch_type_spec_contAccess().getKindChar_typeEnumRuleCall_1_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulechar_type_in_rule__Switch_type_spec_cont__KindAssignment_1_126747);
            rulechar_type();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getSwitch_type_spec_contAccess().getKindChar_typeEnumRuleCall_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Switch_type_spec_cont__KindAssignment_1_1


    // $ANTLR start rule__Switch_type_spec_cont__KindAssignment_2_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13196:1: rule__Switch_type_spec_cont__KindAssignment_2_1 : ( ruleboolean_type ) ;
    public final void rule__Switch_type_spec_cont__KindAssignment_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13200:1: ( ( ruleboolean_type ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13201:1: ( ruleboolean_type )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13201:1: ( ruleboolean_type )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13202:1: ruleboolean_type
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getSwitch_type_spec_contAccess().getKindBoolean_typeEnumRuleCall_2_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleboolean_type_in_rule__Switch_type_spec_cont__KindAssignment_2_126778);
            ruleboolean_type();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getSwitch_type_spec_contAccess().getKindBoolean_typeEnumRuleCall_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Switch_type_spec_cont__KindAssignment_2_1


    // $ANTLR start rule__Case_stmt__LabelAssignment_0_0_0_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13211:1: rule__Case_stmt__LabelAssignment_0_0_0_1 : ( ruleconst_exp ) ;
    public final void rule__Case_stmt__LabelAssignment_0_0_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13215:1: ( ( ruleconst_exp ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13216:1: ( ruleconst_exp )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13216:1: ( ruleconst_exp )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13217:1: ruleconst_exp
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getLabelConst_expParserRuleCall_0_0_0_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleconst_exp_in_rule__Case_stmt__LabelAssignment_0_0_0_126809);
            ruleconst_exp();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getLabelConst_expParserRuleCall_0_0_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Case_stmt__LabelAssignment_0_0_0_1


    // $ANTLR start rule__Case_stmt__ContainedTypeAssignment_0_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13226:1: rule__Case_stmt__ContainedTypeAssignment_0_1 : ( rulearray_type_spec ) ;
    public final void rule__Case_stmt__ContainedTypeAssignment_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13230:1: ( ( rulearray_type_spec ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13231:1: ( rulearray_type_spec )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13231:1: ( rulearray_type_spec )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13232:1: rulearray_type_spec
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getContainedTypeArray_type_specParserRuleCall_0_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulearray_type_spec_in_rule__Case_stmt__ContainedTypeAssignment_0_126840);
            rulearray_type_spec();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getContainedTypeArray_type_specParserRuleCall_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Case_stmt__ContainedTypeAssignment_0_1


    // $ANTLR start rule__Case_stmt__LabelAssignment_1_0_0_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13241:1: rule__Case_stmt__LabelAssignment_1_0_0_1 : ( ruleconst_exp ) ;
    public final void rule__Case_stmt__LabelAssignment_1_0_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13245:1: ( ( ruleconst_exp ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13246:1: ( ruleconst_exp )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13246:1: ( ruleconst_exp )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13247:1: ruleconst_exp
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getLabelConst_expParserRuleCall_1_0_0_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleconst_exp_in_rule__Case_stmt__LabelAssignment_1_0_0_126871);
            ruleconst_exp();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getLabelConst_expParserRuleCall_1_0_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Case_stmt__LabelAssignment_1_0_0_1


    // $ANTLR start rule__Case_stmt__ContainedTypeAssignment_1_1_0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13256:1: rule__Case_stmt__ContainedTypeAssignment_1_1_0 : ( rulesimple_type_spec ) ;
    public final void rule__Case_stmt__ContainedTypeAssignment_1_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13260:1: ( ( rulesimple_type_spec ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13261:1: ( rulesimple_type_spec )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13261:1: ( rulesimple_type_spec )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13262:1: rulesimple_type_spec
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getContainedTypeSimple_type_specParserRuleCall_1_1_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulesimple_type_spec_in_rule__Case_stmt__ContainedTypeAssignment_1_1_026902);
            rulesimple_type_spec();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getContainedTypeSimple_type_specParserRuleCall_1_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Case_stmt__ContainedTypeAssignment_1_1_0


    // $ANTLR start rule__Case_stmt__SharedTypeAssignment_1_1_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13271:1: rule__Case_stmt__SharedTypeAssignment_1_1_1 : ( ( RULE_ID ) ) ;
    public final void rule__Case_stmt__SharedTypeAssignment_1_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13275:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13276:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13276:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13277:1: ( RULE_ID )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getSharedTypeTypedefDefCrossReference_1_1_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13278:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13279:1: RULE_ID
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getSharedTypeTypedefDefIDTerminalRuleCall_1_1_1_0_1()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Case_stmt__SharedTypeAssignment_1_1_126937); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getSharedTypeTypedefDefIDTerminalRuleCall_1_1_1_0_1()); 
            }

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getSharedTypeTypedefDefCrossReference_1_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Case_stmt__SharedTypeAssignment_1_1_1


    // $ANTLR start rule__Case_stmt__IdentifierAssignment_1_2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13290:1: rule__Case_stmt__IdentifierAssignment_1_2 : ( RULE_ID ) ;
    public final void rule__Case_stmt__IdentifierAssignment_1_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13294:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13295:1: ( RULE_ID )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13295:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13296:1: RULE_ID
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getCase_stmtAccess().getIdentifierIDTerminalRuleCall_1_2_0()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Case_stmt__IdentifierAssignment_1_226972); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getCase_stmtAccess().getIdentifierIDTerminalRuleCall_1_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Case_stmt__IdentifierAssignment_1_2


    // $ANTLR start rule__Enum_type__IdentifierAssignment_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13305:1: rule__Enum_type__IdentifierAssignment_1 : ( RULE_ID ) ;
    public final void rule__Enum_type__IdentifierAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13309:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13310:1: ( RULE_ID )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13310:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13311:1: RULE_ID
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getEnum_typeAccess().getIdentifierIDTerminalRuleCall_1_0()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Enum_type__IdentifierAssignment_127003); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getEnum_typeAccess().getIdentifierIDTerminalRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Enum_type__IdentifierAssignment_1


    // $ANTLR start rule__Enum_type__MembersAssignment_3
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13320:1: rule__Enum_type__MembersAssignment_3 : ( ruleenum_member ) ;
    public final void rule__Enum_type__MembersAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13324:1: ( ( ruleenum_member ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13325:1: ( ruleenum_member )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13325:1: ( ruleenum_member )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13326:1: ruleenum_member
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getEnum_typeAccess().getMembersEnum_memberParserRuleCall_3_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleenum_member_in_rule__Enum_type__MembersAssignment_327034);
            ruleenum_member();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getEnum_typeAccess().getMembersEnum_memberParserRuleCall_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Enum_type__MembersAssignment_3


    // $ANTLR start rule__Enum_type__MembersAssignment_4_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13335:1: rule__Enum_type__MembersAssignment_4_1 : ( ruleenum_member ) ;
    public final void rule__Enum_type__MembersAssignment_4_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13339:1: ( ( ruleenum_member ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13340:1: ( ruleenum_member )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13340:1: ( ruleenum_member )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13341:1: ruleenum_member
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getEnum_typeAccess().getMembersEnum_memberParserRuleCall_4_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleenum_member_in_rule__Enum_type__MembersAssignment_4_127065);
            ruleenum_member();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getEnum_typeAccess().getMembersEnum_memberParserRuleCall_4_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Enum_type__MembersAssignment_4_1


    // $ANTLR start rule__Enum_member__IdentifierAssignment
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13350:1: rule__Enum_member__IdentifierAssignment : ( RULE_ID ) ;
    public final void rule__Enum_member__IdentifierAssignment() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13354:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13355:1: ( RULE_ID )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13355:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13356:1: RULE_ID
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getEnum_memberAccess().getIdentifierIDTerminalRuleCall_0()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Enum_member__IdentifierAssignment27096); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getEnum_memberAccess().getIdentifierIDTerminalRuleCall_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Enum_member__IdentifierAssignment


    // $ANTLR start rule__Const_decl__ContainedTypeAssignment_1_0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13365:1: rule__Const_decl__ContainedTypeAssignment_1_0 : ( ruleconst_type ) ;
    public final void rule__Const_decl__ContainedTypeAssignment_1_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13369:1: ( ( ruleconst_type ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13370:1: ( ruleconst_type )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13370:1: ( ruleconst_type )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13371:1: ruleconst_type
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getConst_declAccess().getContainedTypeConst_typeParserRuleCall_1_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleconst_type_in_rule__Const_decl__ContainedTypeAssignment_1_027127);
            ruleconst_type();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getConst_declAccess().getContainedTypeConst_typeParserRuleCall_1_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Const_decl__ContainedTypeAssignment_1_0


    // $ANTLR start rule__Const_decl__SharedTypeAssignment_1_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13380:1: rule__Const_decl__SharedTypeAssignment_1_1 : ( ( RULE_ID ) ) ;
    public final void rule__Const_decl__SharedTypeAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13384:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13385:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13385:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13386:1: ( RULE_ID )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getConst_declAccess().getSharedTypeAliasDefCrossReference_1_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13387:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13388:1: RULE_ID
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getConst_declAccess().getSharedTypeAliasDefIDTerminalRuleCall_1_1_0_1()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Const_decl__SharedTypeAssignment_1_127162); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getConst_declAccess().getSharedTypeAliasDefIDTerminalRuleCall_1_1_0_1()); 
            }

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getConst_declAccess().getSharedTypeAliasDefCrossReference_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Const_decl__SharedTypeAssignment_1_1


    // $ANTLR start rule__Const_decl__IdentifierAssignment_2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13399:1: rule__Const_decl__IdentifierAssignment_2 : ( RULE_ID ) ;
    public final void rule__Const_decl__IdentifierAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13403:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13404:1: ( RULE_ID )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13404:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13405:1: RULE_ID
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getConst_declAccess().getIdentifierIDTerminalRuleCall_2_0()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Const_decl__IdentifierAssignment_227197); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getConst_declAccess().getIdentifierIDTerminalRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Const_decl__IdentifierAssignment_2


    // $ANTLR start rule__Const_decl__ConstValueAssignment_4
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13414:1: rule__Const_decl__ConstValueAssignment_4 : ( ruleconst_exp ) ;
    public final void rule__Const_decl__ConstValueAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13418:1: ( ( ruleconst_exp ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13419:1: ( ruleconst_exp )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13419:1: ( ruleconst_exp )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13420:1: ruleconst_exp
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getConst_declAccess().getConstValueConst_expParserRuleCall_4_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleconst_exp_in_rule__Const_decl__ConstValueAssignment_427228);
            ruleconst_exp();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getConst_declAccess().getConstValueConst_expParserRuleCall_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Const_decl__ConstValueAssignment_4


    // $ANTLR start rule__Sequence_type__ContainedTypeAssignment_2_0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13429:1: rule__Sequence_type__ContainedTypeAssignment_2_0 : ( rulesimple_type_spec ) ;
    public final void rule__Sequence_type__ContainedTypeAssignment_2_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13433:1: ( ( rulesimple_type_spec ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13434:1: ( rulesimple_type_spec )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13434:1: ( rulesimple_type_spec )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13435:1: rulesimple_type_spec
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getSequence_typeAccess().getContainedTypeSimple_type_specParserRuleCall_2_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulesimple_type_spec_in_rule__Sequence_type__ContainedTypeAssignment_2_027259);
            rulesimple_type_spec();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getSequence_typeAccess().getContainedTypeSimple_type_specParserRuleCall_2_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Sequence_type__ContainedTypeAssignment_2_0


    // $ANTLR start rule__Sequence_type__SharedTypeAssignment_2_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13444:1: rule__Sequence_type__SharedTypeAssignment_2_1 : ( ( RULE_ID ) ) ;
    public final void rule__Sequence_type__SharedTypeAssignment_2_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13448:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13449:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13449:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13450:1: ( RULE_ID )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getSequence_typeAccess().getSharedTypeTypedefDefCrossReference_2_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13451:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13452:1: RULE_ID
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getSequence_typeAccess().getSharedTypeTypedefDefIDTerminalRuleCall_2_1_0_1()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__Sequence_type__SharedTypeAssignment_2_127294); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getSequence_typeAccess().getSharedTypeTypedefDefIDTerminalRuleCall_2_1_0_1()); 
            }

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getSequence_typeAccess().getSharedTypeTypedefDefCrossReference_2_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Sequence_type__SharedTypeAssignment_2_1


    // $ANTLR start rule__Sequence_type__BoundAssignment_3_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13463:1: rule__Sequence_type__BoundAssignment_3_1 : ( ruleconst_exp ) ;
    public final void rule__Sequence_type__BoundAssignment_3_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13467:1: ( ( ruleconst_exp ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13468:1: ( ruleconst_exp )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13468:1: ( ruleconst_exp )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13469:1: ruleconst_exp
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getSequence_typeAccess().getBoundConst_expParserRuleCall_3_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleconst_exp_in_rule__Sequence_type__BoundAssignment_3_127329);
            ruleconst_exp();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getSequence_typeAccess().getBoundConst_expParserRuleCall_3_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Sequence_type__BoundAssignment_3_1


    // $ANTLR start rule__Stringdef_type__BoundAssignment_2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13478:1: rule__Stringdef_type__BoundAssignment_2 : ( ruleconst_exp ) ;
    public final void rule__Stringdef_type__BoundAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13482:1: ( ( ruleconst_exp ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13483:1: ( ruleconst_exp )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13483:1: ( ruleconst_exp )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13484:1: ruleconst_exp
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getStringdef_typeAccess().getBoundConst_expParserRuleCall_2_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleconst_exp_in_rule__Stringdef_type__BoundAssignment_227360);
            ruleconst_exp();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getStringdef_typeAccess().getBoundConst_expParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Stringdef_type__BoundAssignment_2


    // $ANTLR start rule__Wide_stringdef_type__BoundAssignment_2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13493:1: rule__Wide_stringdef_type__BoundAssignment_2 : ( ruleconst_exp ) ;
    public final void rule__Wide_stringdef_type__BoundAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13497:1: ( ( ruleconst_exp ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13498:1: ( ruleconst_exp )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13498:1: ( ruleconst_exp )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13499:1: ruleconst_exp
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getWide_stringdef_typeAccess().getBoundConst_expParserRuleCall_2_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleconst_exp_in_rule__Wide_stringdef_type__BoundAssignment_227391);
            ruleconst_exp();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getWide_stringdef_typeAccess().getBoundConst_expParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Wide_stringdef_type__BoundAssignment_2


    // $ANTLR start rule__Fixed_pt_type__DigitsAssignment_2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13508:1: rule__Fixed_pt_type__DigitsAssignment_2 : ( ruleconst_exp ) ;
    public final void rule__Fixed_pt_type__DigitsAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13512:1: ( ( ruleconst_exp ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13513:1: ( ruleconst_exp )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13513:1: ( ruleconst_exp )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13514:1: ruleconst_exp
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getFixed_pt_typeAccess().getDigitsConst_expParserRuleCall_2_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleconst_exp_in_rule__Fixed_pt_type__DigitsAssignment_227422);
            ruleconst_exp();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getFixed_pt_typeAccess().getDigitsConst_expParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Fixed_pt_type__DigitsAssignment_2


    // $ANTLR start rule__Fixed_pt_type__ScaleAssignment_4
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13523:1: rule__Fixed_pt_type__ScaleAssignment_4 : ( ruleconst_exp ) ;
    public final void rule__Fixed_pt_type__ScaleAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13527:1: ( ( ruleconst_exp ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13528:1: ( ruleconst_exp )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13528:1: ( ruleconst_exp )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13529:1: ruleconst_exp
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getFixed_pt_typeAccess().getScaleConst_expParserRuleCall_4_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleconst_exp_in_rule__Fixed_pt_type__ScaleAssignment_427453);
            ruleconst_exp();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getFixed_pt_typeAccess().getScaleConst_expParserRuleCall_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Fixed_pt_type__ScaleAssignment_4


    // $ANTLR start rule__Floating_pt_type__KindAssignment_0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13538:1: rule__Floating_pt_type__KindAssignment_0 : ( rulefloat_type ) ;
    public final void rule__Floating_pt_type__KindAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13542:1: ( ( rulefloat_type ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13543:1: ( rulefloat_type )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13543:1: ( rulefloat_type )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13544:1: rulefloat_type
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getFloating_pt_typeAccess().getKindFloat_typeEnumRuleCall_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulefloat_type_in_rule__Floating_pt_type__KindAssignment_027484);
            rulefloat_type();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getFloating_pt_typeAccess().getKindFloat_typeEnumRuleCall_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Floating_pt_type__KindAssignment_0


    // $ANTLR start rule__Floating_pt_type__KindAssignment_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13553:1: rule__Floating_pt_type__KindAssignment_1 : ( ruledouble_type ) ;
    public final void rule__Floating_pt_type__KindAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13557:1: ( ( ruledouble_type ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13558:1: ( ruledouble_type )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13558:1: ( ruledouble_type )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13559:1: ruledouble_type
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getFloating_pt_typeAccess().getKindDouble_typeEnumRuleCall_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruledouble_type_in_rule__Floating_pt_type__KindAssignment_127515);
            ruledouble_type();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getFloating_pt_typeAccess().getKindDouble_typeEnumRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Floating_pt_type__KindAssignment_1


    // $ANTLR start rule__Floating_pt_type__KindAssignment_2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13568:1: rule__Floating_pt_type__KindAssignment_2 : ( rulelongdouble_type ) ;
    public final void rule__Floating_pt_type__KindAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13572:1: ( ( rulelongdouble_type ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13573:1: ( rulelongdouble_type )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13573:1: ( rulelongdouble_type )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13574:1: rulelongdouble_type
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getFloating_pt_typeAccess().getKindLongdouble_typeParserRuleCall_2_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulelongdouble_type_in_rule__Floating_pt_type__KindAssignment_227546);
            rulelongdouble_type();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getFloating_pt_typeAccess().getKindLongdouble_typeParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Floating_pt_type__KindAssignment_2


    // $ANTLR start rule__Integer_type__KindAssignment_0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13583:1: rule__Integer_type__KindAssignment_0 : ( ruleshort_type ) ;
    public final void rule__Integer_type__KindAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13587:1: ( ( ruleshort_type ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13588:1: ( ruleshort_type )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13588:1: ( ruleshort_type )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13589:1: ruleshort_type
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getInteger_typeAccess().getKindShort_typeEnumRuleCall_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleshort_type_in_rule__Integer_type__KindAssignment_027577);
            ruleshort_type();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getInteger_typeAccess().getKindShort_typeEnumRuleCall_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Integer_type__KindAssignment_0


    // $ANTLR start rule__Integer_type__KindAssignment_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13598:1: rule__Integer_type__KindAssignment_1 : ( rulelong_type ) ;
    public final void rule__Integer_type__KindAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13602:1: ( ( rulelong_type ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13603:1: ( rulelong_type )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13603:1: ( rulelong_type )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13604:1: rulelong_type
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getInteger_typeAccess().getKindLong_typeEnumRuleCall_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulelong_type_in_rule__Integer_type__KindAssignment_127608);
            rulelong_type();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getInteger_typeAccess().getKindLong_typeEnumRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Integer_type__KindAssignment_1


    // $ANTLR start rule__Integer_type__KindAssignment_2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13613:1: rule__Integer_type__KindAssignment_2 : ( rulelonglong_type ) ;
    public final void rule__Integer_type__KindAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13617:1: ( ( rulelonglong_type ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13618:1: ( rulelonglong_type )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13618:1: ( rulelonglong_type )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13619:1: rulelonglong_type
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getInteger_typeAccess().getKindLonglong_typeParserRuleCall_2_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulelonglong_type_in_rule__Integer_type__KindAssignment_227639);
            rulelonglong_type();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getInteger_typeAccess().getKindLonglong_typeParserRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Integer_type__KindAssignment_2


    // $ANTLR start rule__Integer_type__KindAssignment_3
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13628:1: rule__Integer_type__KindAssignment_3 : ( ruleushort_type ) ;
    public final void rule__Integer_type__KindAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13632:1: ( ( ruleushort_type ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13633:1: ( ruleushort_type )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13633:1: ( ruleushort_type )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13634:1: ruleushort_type
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getInteger_typeAccess().getKindUshort_typeParserRuleCall_3_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleushort_type_in_rule__Integer_type__KindAssignment_327670);
            ruleushort_type();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getInteger_typeAccess().getKindUshort_typeParserRuleCall_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Integer_type__KindAssignment_3


    // $ANTLR start rule__Integer_type__KindAssignment_4
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13643:1: rule__Integer_type__KindAssignment_4 : ( ruleulong_type ) ;
    public final void rule__Integer_type__KindAssignment_4() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13647:1: ( ( ruleulong_type ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13648:1: ( ruleulong_type )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13648:1: ( ruleulong_type )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13649:1: ruleulong_type
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getInteger_typeAccess().getKindUlong_typeParserRuleCall_4_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleulong_type_in_rule__Integer_type__KindAssignment_427701);
            ruleulong_type();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getInteger_typeAccess().getKindUlong_typeParserRuleCall_4_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Integer_type__KindAssignment_4


    // $ANTLR start rule__Integer_type__KindAssignment_5
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13658:1: rule__Integer_type__KindAssignment_5 : ( ruleulonglong_type ) ;
    public final void rule__Integer_type__KindAssignment_5() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13662:1: ( ( ruleulonglong_type ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13663:1: ( ruleulonglong_type )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13663:1: ( ruleulonglong_type )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13664:1: ruleulonglong_type
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getInteger_typeAccess().getKindUlonglong_typeParserRuleCall_5_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleulonglong_type_in_rule__Integer_type__KindAssignment_527732);
            ruleulonglong_type();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getInteger_typeAccess().getKindUlonglong_typeParserRuleCall_5_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Integer_type__KindAssignment_5


    // $ANTLR start rule__Charstr_type__KindAssignment_0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13673:1: rule__Charstr_type__KindAssignment_0 : ( rulechar_type ) ;
    public final void rule__Charstr_type__KindAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13677:1: ( ( rulechar_type ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13678:1: ( rulechar_type )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13678:1: ( rulechar_type )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13679:1: rulechar_type
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getCharstr_typeAccess().getKindChar_typeEnumRuleCall_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulechar_type_in_rule__Charstr_type__KindAssignment_027763);
            rulechar_type();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getCharstr_typeAccess().getKindChar_typeEnumRuleCall_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Charstr_type__KindAssignment_0


    // $ANTLR start rule__Charstr_type__KindAssignment_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13688:1: rule__Charstr_type__KindAssignment_1 : ( rulewide_char_type ) ;
    public final void rule__Charstr_type__KindAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13692:1: ( ( rulewide_char_type ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13693:1: ( rulewide_char_type )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13693:1: ( rulewide_char_type )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13694:1: rulewide_char_type
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getCharstr_typeAccess().getKindWide_char_typeEnumRuleCall_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulewide_char_type_in_rule__Charstr_type__KindAssignment_127794);
            rulewide_char_type();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getCharstr_typeAccess().getKindWide_char_typeEnumRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Charstr_type__KindAssignment_1


    // $ANTLR start rule__Charstr_type__KindAssignment_2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13703:1: rule__Charstr_type__KindAssignment_2 : ( rulestring_type ) ;
    public final void rule__Charstr_type__KindAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13707:1: ( ( rulestring_type ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13708:1: ( rulestring_type )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13708:1: ( rulestring_type )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13709:1: rulestring_type
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getCharstr_typeAccess().getKindString_typeEnumRuleCall_2_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulestring_type_in_rule__Charstr_type__KindAssignment_227825);
            rulestring_type();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getCharstr_typeAccess().getKindString_typeEnumRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Charstr_type__KindAssignment_2


    // $ANTLR start rule__Charstr_type__KindAssignment_3
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13718:1: rule__Charstr_type__KindAssignment_3 : ( rulewide_string_type ) ;
    public final void rule__Charstr_type__KindAssignment_3() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13722:1: ( ( rulewide_string_type ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13723:1: ( rulewide_string_type )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13723:1: ( rulewide_string_type )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13724:1: rulewide_string_type
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getCharstr_typeAccess().getKindWide_string_typeEnumRuleCall_3_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulewide_string_type_in_rule__Charstr_type__KindAssignment_327856);
            rulewide_string_type();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getCharstr_typeAccess().getKindWide_string_typeEnumRuleCall_3_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Charstr_type__KindAssignment_3


    // $ANTLR start rule__Other_type__KindAssignment_0
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13733:1: rule__Other_type__KindAssignment_0 : ( ruleboolean_type ) ;
    public final void rule__Other_type__KindAssignment_0() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13737:1: ( ( ruleboolean_type ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13738:1: ( ruleboolean_type )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13738:1: ( ruleboolean_type )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13739:1: ruleboolean_type
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOther_typeAccess().getKindBoolean_typeEnumRuleCall_0_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleboolean_type_in_rule__Other_type__KindAssignment_027887);
            ruleboolean_type();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getOther_typeAccess().getKindBoolean_typeEnumRuleCall_0_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Other_type__KindAssignment_0


    // $ANTLR start rule__Other_type__KindAssignment_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13748:1: rule__Other_type__KindAssignment_1 : ( ruleoctet_type ) ;
    public final void rule__Other_type__KindAssignment_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13752:1: ( ( ruleoctet_type ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13753:1: ( ruleoctet_type )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13753:1: ( ruleoctet_type )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13754:1: ruleoctet_type
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOther_typeAccess().getKindOctet_typeEnumRuleCall_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleoctet_type_in_rule__Other_type__KindAssignment_127918);
            ruleoctet_type();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getOther_typeAccess().getKindOctet_typeEnumRuleCall_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Other_type__KindAssignment_1


    // $ANTLR start rule__Other_type__KindAssignment_2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13763:1: rule__Other_type__KindAssignment_2 : ( ruleany_type ) ;
    public final void rule__Other_type__KindAssignment_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13767:1: ( ( ruleany_type ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13768:1: ( ruleany_type )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13768:1: ( ruleany_type )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13769:1: ruleany_type
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOther_typeAccess().getKindAny_typeEnumRuleCall_2_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleany_type_in_rule__Other_type__KindAssignment_227949);
            ruleany_type();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getOther_typeAccess().getKindAny_typeEnumRuleCall_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Other_type__KindAssignment_2


    // $ANTLR start rule__Or_expr__OperatorAssignment_1_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13778:1: rule__Or_expr__OperatorAssignment_1_1 : ( ( '|' ) ) ;
    public final void rule__Or_expr__OperatorAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13782:1: ( ( ( '|' ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13783:1: ( ( '|' ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13783:1: ( ( '|' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13784:1: ( '|' )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOr_exprAccess().getOperatorVerticalLineKeyword_1_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13785:1: ( '|' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13786:1: '|'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOr_exprAccess().getOperatorVerticalLineKeyword_1_1_0()); 
            }
            match(input,77,FollowSets000.FOLLOW_77_in_rule__Or_expr__OperatorAssignment_1_127985); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getOr_exprAccess().getOperatorVerticalLineKeyword_1_1_0()); 
            }

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getOr_exprAccess().getOperatorVerticalLineKeyword_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Or_expr__OperatorAssignment_1_1


    // $ANTLR start rule__Or_expr__RightAssignment_1_2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13801:1: rule__Or_expr__RightAssignment_1_2 : ( rulexor_expr ) ;
    public final void rule__Or_expr__RightAssignment_1_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13805:1: ( ( rulexor_expr ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13806:1: ( rulexor_expr )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13806:1: ( rulexor_expr )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13807:1: rulexor_expr
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getOr_exprAccess().getRightXor_exprParserRuleCall_1_2_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulexor_expr_in_rule__Or_expr__RightAssignment_1_228024);
            rulexor_expr();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getOr_exprAccess().getRightXor_exprParserRuleCall_1_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Or_expr__RightAssignment_1_2


    // $ANTLR start rule__Xor_expr__OperatorAssignment_1_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13816:1: rule__Xor_expr__OperatorAssignment_1_1 : ( ( '^' ) ) ;
    public final void rule__Xor_expr__OperatorAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13820:1: ( ( ( '^' ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13821:1: ( ( '^' ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13821:1: ( ( '^' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13822:1: ( '^' )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getXor_exprAccess().getOperatorCircumflexAccentKeyword_1_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13823:1: ( '^' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13824:1: '^'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getXor_exprAccess().getOperatorCircumflexAccentKeyword_1_1_0()); 
            }
            match(input,78,FollowSets000.FOLLOW_78_in_rule__Xor_expr__OperatorAssignment_1_128060); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getXor_exprAccess().getOperatorCircumflexAccentKeyword_1_1_0()); 
            }

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getXor_exprAccess().getOperatorCircumflexAccentKeyword_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Xor_expr__OperatorAssignment_1_1


    // $ANTLR start rule__Xor_expr__RightAssignment_1_2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13839:1: rule__Xor_expr__RightAssignment_1_2 : ( ruleand_expr ) ;
    public final void rule__Xor_expr__RightAssignment_1_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13843:1: ( ( ruleand_expr ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13844:1: ( ruleand_expr )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13844:1: ( ruleand_expr )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13845:1: ruleand_expr
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getXor_exprAccess().getRightAnd_exprParserRuleCall_1_2_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleand_expr_in_rule__Xor_expr__RightAssignment_1_228099);
            ruleand_expr();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getXor_exprAccess().getRightAnd_exprParserRuleCall_1_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Xor_expr__RightAssignment_1_2


    // $ANTLR start rule__And_expr__OperatorAssignment_1_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13854:1: rule__And_expr__OperatorAssignment_1_1 : ( ( '&' ) ) ;
    public final void rule__And_expr__OperatorAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13858:1: ( ( ( '&' ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13859:1: ( ( '&' ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13859:1: ( ( '&' ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13860:1: ( '&' )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAnd_exprAccess().getOperatorAmpersandKeyword_1_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13861:1: ( '&' )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13862:1: '&'
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAnd_exprAccess().getOperatorAmpersandKeyword_1_1_0()); 
            }
            match(input,79,FollowSets000.FOLLOW_79_in_rule__And_expr__OperatorAssignment_1_128135); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getAnd_exprAccess().getOperatorAmpersandKeyword_1_1_0()); 
            }

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getAnd_exprAccess().getOperatorAmpersandKeyword_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__And_expr__OperatorAssignment_1_1


    // $ANTLR start rule__And_expr__RightAssignment_1_2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13877:1: rule__And_expr__RightAssignment_1_2 : ( ruleshift_expr ) ;
    public final void rule__And_expr__RightAssignment_1_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13881:1: ( ( ruleshift_expr ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13882:1: ( ruleshift_expr )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13882:1: ( ruleshift_expr )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13883:1: ruleshift_expr
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAnd_exprAccess().getRightShift_exprParserRuleCall_1_2_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleshift_expr_in_rule__And_expr__RightAssignment_1_228174);
            ruleshift_expr();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getAnd_exprAccess().getRightShift_exprParserRuleCall_1_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__And_expr__RightAssignment_1_2


    // $ANTLR start rule__Shift_expr__OperatorAssignment_1_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13892:1: rule__Shift_expr__OperatorAssignment_1_1 : ( ( rule__Shift_expr__OperatorAlternatives_1_1_0 ) ) ;
    public final void rule__Shift_expr__OperatorAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13896:1: ( ( ( rule__Shift_expr__OperatorAlternatives_1_1_0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13897:1: ( ( rule__Shift_expr__OperatorAlternatives_1_1_0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13897:1: ( ( rule__Shift_expr__OperatorAlternatives_1_1_0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13898:1: ( rule__Shift_expr__OperatorAlternatives_1_1_0 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getShift_exprAccess().getOperatorAlternatives_1_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13899:1: ( rule__Shift_expr__OperatorAlternatives_1_1_0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13899:2: rule__Shift_expr__OperatorAlternatives_1_1_0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Shift_expr__OperatorAlternatives_1_1_0_in_rule__Shift_expr__OperatorAssignment_1_128205);
            rule__Shift_expr__OperatorAlternatives_1_1_0();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getShift_exprAccess().getOperatorAlternatives_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Shift_expr__OperatorAssignment_1_1


    // $ANTLR start rule__Shift_expr__RightAssignment_1_2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13908:1: rule__Shift_expr__RightAssignment_1_2 : ( ruleadd_expr ) ;
    public final void rule__Shift_expr__RightAssignment_1_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13912:1: ( ( ruleadd_expr ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13913:1: ( ruleadd_expr )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13913:1: ( ruleadd_expr )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13914:1: ruleadd_expr
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getShift_exprAccess().getRightAdd_exprParserRuleCall_1_2_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleadd_expr_in_rule__Shift_expr__RightAssignment_1_228238);
            ruleadd_expr();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getShift_exprAccess().getRightAdd_exprParserRuleCall_1_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Shift_expr__RightAssignment_1_2


    // $ANTLR start rule__Add_expr__OperatorAssignment_1_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13923:1: rule__Add_expr__OperatorAssignment_1_1 : ( ( rule__Add_expr__OperatorAlternatives_1_1_0 ) ) ;
    public final void rule__Add_expr__OperatorAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13927:1: ( ( ( rule__Add_expr__OperatorAlternatives_1_1_0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13928:1: ( ( rule__Add_expr__OperatorAlternatives_1_1_0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13928:1: ( ( rule__Add_expr__OperatorAlternatives_1_1_0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13929:1: ( rule__Add_expr__OperatorAlternatives_1_1_0 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAdd_exprAccess().getOperatorAlternatives_1_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13930:1: ( rule__Add_expr__OperatorAlternatives_1_1_0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13930:2: rule__Add_expr__OperatorAlternatives_1_1_0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Add_expr__OperatorAlternatives_1_1_0_in_rule__Add_expr__OperatorAssignment_1_128269);
            rule__Add_expr__OperatorAlternatives_1_1_0();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getAdd_exprAccess().getOperatorAlternatives_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Add_expr__OperatorAssignment_1_1


    // $ANTLR start rule__Add_expr__RightAssignment_1_2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13939:1: rule__Add_expr__RightAssignment_1_2 : ( rulemult_expr ) ;
    public final void rule__Add_expr__RightAssignment_1_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13943:1: ( ( rulemult_expr ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13944:1: ( rulemult_expr )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13944:1: ( rulemult_expr )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13945:1: rulemult_expr
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getAdd_exprAccess().getRightMult_exprParserRuleCall_1_2_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_rulemult_expr_in_rule__Add_expr__RightAssignment_1_228302);
            rulemult_expr();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getAdd_exprAccess().getRightMult_exprParserRuleCall_1_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Add_expr__RightAssignment_1_2


    // $ANTLR start rule__Mult_expr__OperatorAssignment_1_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13954:1: rule__Mult_expr__OperatorAssignment_1_1 : ( ( rule__Mult_expr__OperatorAlternatives_1_1_0 ) ) ;
    public final void rule__Mult_expr__OperatorAssignment_1_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13958:1: ( ( ( rule__Mult_expr__OperatorAlternatives_1_1_0 ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13959:1: ( ( rule__Mult_expr__OperatorAlternatives_1_1_0 ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13959:1: ( ( rule__Mult_expr__OperatorAlternatives_1_1_0 ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13960:1: ( rule__Mult_expr__OperatorAlternatives_1_1_0 )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getMult_exprAccess().getOperatorAlternatives_1_1_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13961:1: ( rule__Mult_expr__OperatorAlternatives_1_1_0 )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13961:2: rule__Mult_expr__OperatorAlternatives_1_1_0
            {
            pushFollow(FollowSets000.FOLLOW_rule__Mult_expr__OperatorAlternatives_1_1_0_in_rule__Mult_expr__OperatorAssignment_1_128333);
            rule__Mult_expr__OperatorAlternatives_1_1_0();
            _fsp--;
            if (failed) return ;

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getMult_exprAccess().getOperatorAlternatives_1_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Mult_expr__OperatorAssignment_1_1


    // $ANTLR start rule__Mult_expr__RightAssignment_1_2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13970:1: rule__Mult_expr__RightAssignment_1_2 : ( ruleunary_expr ) ;
    public final void rule__Mult_expr__RightAssignment_1_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13974:1: ( ( ruleunary_expr ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13975:1: ( ruleunary_expr )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13975:1: ( ruleunary_expr )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13976:1: ruleunary_expr
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getMult_exprAccess().getRightUnary_exprParserRuleCall_1_2_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleunary_expr_in_rule__Mult_expr__RightAssignment_1_228366);
            ruleunary_expr();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getMult_exprAccess().getRightUnary_exprParserRuleCall_1_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Mult_expr__RightAssignment_1_2


    // $ANTLR start rule__Unary_expr__OperatorAssignment_0_1
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13985:1: rule__Unary_expr__OperatorAssignment_0_1 : ( ruleunary_operator ) ;
    public final void rule__Unary_expr__OperatorAssignment_0_1() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13989:1: ( ( ruleunary_operator ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13990:1: ( ruleunary_operator )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13990:1: ( ruleunary_operator )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:13991:1: ruleunary_operator
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getUnary_exprAccess().getOperatorUnary_operatorParserRuleCall_0_1_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleunary_operator_in_rule__Unary_expr__OperatorAssignment_0_128397);
            ruleunary_operator();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getUnary_exprAccess().getOperatorUnary_operatorParserRuleCall_0_1_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Unary_expr__OperatorAssignment_0_1


    // $ANTLR start rule__Unary_expr__ExpressionAssignment_0_2
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:14000:1: rule__Unary_expr__ExpressionAssignment_0_2 : ( ruleprimary_expr ) ;
    public final void rule__Unary_expr__ExpressionAssignment_0_2() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:14004:1: ( ( ruleprimary_expr ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:14005:1: ( ruleprimary_expr )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:14005:1: ( ruleprimary_expr )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:14006:1: ruleprimary_expr
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getUnary_exprAccess().getExpressionPrimary_exprParserRuleCall_0_2_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleprimary_expr_in_rule__Unary_expr__ExpressionAssignment_0_228428);
            ruleprimary_expr();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getUnary_exprAccess().getExpressionPrimary_exprParserRuleCall_0_2_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__Unary_expr__ExpressionAssignment_0_2


    // $ANTLR start rule__ConstantDefRef__ConstantAssignment
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:14015:1: rule__ConstantDefRef__ConstantAssignment : ( ( RULE_ID ) ) ;
    public final void rule__ConstantDefRef__ConstantAssignment() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:14019:1: ( ( ( RULE_ID ) ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:14020:1: ( ( RULE_ID ) )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:14020:1: ( ( RULE_ID ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:14021:1: ( RULE_ID )
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getConstantDefRefAccess().getConstantConstantCrossReference_0()); 
            }
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:14022:1: ( RULE_ID )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:14023:1: RULE_ID
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getConstantDefRefAccess().getConstantConstantIDTerminalRuleCall_0_1()); 
            }
            match(input,RULE_ID,FollowSets000.FOLLOW_RULE_ID_in_rule__ConstantDefRef__ConstantAssignment28463); if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getConstantDefRefAccess().getConstantConstantIDTerminalRuleCall_0_1()); 
            }

            }

            if ( backtracking==0 ) {
               after(grammarAccess.getConstantDefRefAccess().getConstantConstantCrossReference_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__ConstantDefRef__ConstantAssignment


    // $ANTLR start rule__ValueExpression__ValueAssignment
    // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:14034:1: rule__ValueExpression__ValueAssignment : ( ruleliteral ) ;
    public final void rule__ValueExpression__ValueAssignment() throws RecognitionException {

        		int stackSize = keepStackSize();
            
        try {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:14038:1: ( ( ruleliteral ) )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:14039:1: ( ruleliteral )
            {
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:14039:1: ( ruleliteral )
            // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:14040:1: ruleliteral
            {
            if ( backtracking==0 ) {
               before(grammarAccess.getValueExpressionAccess().getValueLiteralParserRuleCall_0()); 
            }
            pushFollow(FollowSets000.FOLLOW_ruleliteral_in_rule__ValueExpression__ValueAssignment28498);
            ruleliteral();
            _fsp--;
            if (failed) return ;
            if ( backtracking==0 ) {
               after(grammarAccess.getValueExpressionAccess().getValueLiteralParserRuleCall_0()); 
            }

            }


            }

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {

            	restoreStackSize(stackSize);

        }
        return ;
    }
    // $ANTLR end rule__ValueExpression__ValueAssignment

    // $ANTLR start synpred30
    public final void synpred30_fragment() throws RecognitionException {   
        // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2442:1: ( ( ( rule__Alias_type__Group_0__0 ) ) )
        // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2442:1: ( ( rule__Alias_type__Group_0__0 ) )
        {
        // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2442:1: ( ( rule__Alias_type__Group_0__0 ) )
        // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2443:1: ( rule__Alias_type__Group_0__0 )
        {
        if ( backtracking==0 ) {
           before(grammarAccess.getAlias_typeAccess().getGroup_0()); 
        }
        // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2444:1: ( rule__Alias_type__Group_0__0 )
        // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2444:2: rule__Alias_type__Group_0__0
        {
        pushFollow(FollowSets000.FOLLOW_rule__Alias_type__Group_0__0_in_synpred305216);
        rule__Alias_type__Group_0__0();
        _fsp--;
        if (failed) return ;

        }


        }


        }
    }
    // $ANTLR end synpred30

    // $ANTLR start synpred38
    public final void synpred38_fragment() throws RecognitionException {   
        // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2587:1: ( ( ( rule__Member__Group_0__0 ) ) )
        // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2587:1: ( ( rule__Member__Group_0__0 ) )
        {
        // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2587:1: ( ( rule__Member__Group_0__0 ) )
        // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2588:1: ( rule__Member__Group_0__0 )
        {
        if ( backtracking==0 ) {
           before(grammarAccess.getMemberAccess().getGroup_0()); 
        }
        // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2589:1: ( rule__Member__Group_0__0 )
        // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2589:2: rule__Member__Group_0__0
        {
        pushFollow(FollowSets000.FOLLOW_rule__Member__Group_0__0_in_synpred385552);
        rule__Member__Group_0__0();
        _fsp--;
        if (failed) return ;

        }


        }


        }
    }
    // $ANTLR end synpred38

    // $ANTLR start synpred39
    public final void synpred39_fragment() throws RecognitionException {   
        // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2593:6: ( ( ( rule__Member__Group_1__0 ) ) )
        // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2593:6: ( ( rule__Member__Group_1__0 ) )
        {
        // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2593:6: ( ( rule__Member__Group_1__0 ) )
        // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2594:1: ( rule__Member__Group_1__0 )
        {
        if ( backtracking==0 ) {
           before(grammarAccess.getMemberAccess().getGroup_1()); 
        }
        // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2595:1: ( rule__Member__Group_1__0 )
        // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2595:2: rule__Member__Group_1__0
        {
        pushFollow(FollowSets000.FOLLOW_rule__Member__Group_1__0_in_synpred395570);
        rule__Member__Group_1__0();
        _fsp--;
        if (failed) return ;

        }


        }


        }
    }
    // $ANTLR end synpred39

    // $ANTLR start synpred45
    public final void synpred45_fragment() throws RecognitionException {   
        // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2677:1: ( ( ( rule__Case_stmt__Group_0__0 ) ) )
        // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2677:1: ( ( rule__Case_stmt__Group_0__0 ) )
        {
        // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2677:1: ( ( rule__Case_stmt__Group_0__0 ) )
        // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2678:1: ( rule__Case_stmt__Group_0__0 )
        {
        if ( backtracking==0 ) {
           before(grammarAccess.getCase_stmtAccess().getGroup_0()); 
        }
        // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2679:1: ( rule__Case_stmt__Group_0__0 )
        // ../org.csu.idl.xtext.ui/src-gen/org/csu/idl/xtext/ui/contentassist/antlr/internal/InternalIDL.g:2679:2: rule__Case_stmt__Group_0__0
        {
        pushFollow(FollowSets000.FOLLOW_rule__Case_stmt__Group_0__0_in_synpred455775);
        rule__Case_stmt__Group_0__0();
        _fsp--;
        if (failed) return ;

        }


        }


        }
    }
    // $ANTLR end synpred45

    public final boolean synpred45() {
        backtracking++;
        int start = input.mark();
        try {
            synpred45_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !failed;
        input.rewind(start);
        backtracking--;
        failed=false;
        return success;
    }
    public final boolean synpred39() {
        backtracking++;
        int start = input.mark();
        try {
            synpred39_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !failed;
        input.rewind(start);
        backtracking--;
        failed=false;
        return success;
    }
    public final boolean synpred38() {
        backtracking++;
        int start = input.mark();
        try {
            synpred38_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !failed;
        input.rewind(start);
        backtracking--;
        failed=false;
        return success;
    }
    public final boolean synpred30() {
        backtracking++;
        int start = input.mark();
        try {
            synpred30_fragment(); // can never throw exception
        } catch (RecognitionException re) {
            System.err.println("impossible: "+re);
        }
        boolean success = !failed;
        input.rewind(start);
        backtracking--;
        failed=false;
        return success;
    }


 

    
    private static class FollowSets000 {
        public static final BitSet FOLLOW_rulespecification_in_entryRulespecification67 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRulespecification74 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Specification__Group__0_in_rulespecification100 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleinclude_decl_in_entryRuleinclude_decl127 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleinclude_decl134 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Include_decl__Group__0_in_ruleinclude_decl160 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruledefinition_in_entryRuledefinition187 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuledefinition194 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Definition__Alternatives_in_ruledefinition220 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulemodule_in_entryRulemodule247 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRulemodule254 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Module__Group__0_in_rulemodule280 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleinterface_decl_in_entryRuleinterface_decl307 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleinterface_decl314 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_decl__Group__0_in_ruleinterface_decl340 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleinterface_fwd_in_entryRuleinterface_fwd367 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleinterface_fwd374 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_fwd__Group__0_in_ruleinterface_fwd400 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleexport_in_entryRuleexport427 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleexport434 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Export__Alternatives_in_ruleexport460 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleop_decl_in_entryRuleop_decl487 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleop_decl494 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group__0_in_ruleop_decl520 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleop_type_spec_in_entryRuleop_type_spec547 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleop_type_spec554 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_type_spec__Alternatives_in_ruleop_type_spec580 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleparam_decl_in_entryRuleparam_decl607 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleparam_decl614 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Param_decl__Group__0_in_ruleparam_decl640 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleattr_decl_in_entryRuleattr_decl667 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleattr_decl674 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_decl__Alternatives_in_ruleattr_decl700 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulereadonly_attr_spec_in_entryRulereadonly_attr_spec727 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRulereadonly_attr_spec734 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Alternatives_in_rulereadonly_attr_spec760 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleattr_spec_in_entryRuleattr_spec787 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleattr_spec794 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Alternatives_in_ruleattr_spec820 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleexcept_decl_in_entryRuleexcept_decl847 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleexcept_decl854 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Except_decl__Group__0_in_ruleexcept_decl880 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruletype_decl_in_entryRuletype_decl907 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuletype_decl914 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Type_decl__Alternatives_in_ruletype_decl940 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulealias_type_in_entryRulealias_type967 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRulealias_type974 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Alias_type__Alternatives_in_rulealias_type1000 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulearray_type_spec_in_entryRulearray_type_spec1027 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRulearray_type_spec1034 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Array_type_spec__Group__0_in_rulearray_type_spec1060 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulesimple_type_spec_in_entryRulesimple_type_spec1087 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRulesimple_type_spec1094 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Simple_type_spec__Alternatives_in_rulesimple_type_spec1120 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulebase_type_spec_in_entryRulebase_type_spec1147 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRulebase_type_spec1154 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Base_type_spec__Alternatives_in_rulebase_type_spec1180 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruletemplate_type_spec_in_entryRuletemplate_type_spec1207 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuletemplate_type_spec1214 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Template_type_spec__Alternatives_in_ruletemplate_type_spec1240 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulestruct_type_in_entryRulestruct_type1269 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRulestruct_type1276 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Struct_type__Group__0_in_rulestruct_type1302 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulemember_in_entryRulemember1329 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRulemember1336 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Member__Alternatives_in_rulemember1362 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleunion_type_in_entryRuleunion_type1389 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleunion_type1396 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Union_type__Group__0_in_ruleunion_type1422 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleswitch_type_spec_cont_in_entryRuleswitch_type_spec_cont1449 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleswitch_type_spec_cont1456 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Switch_type_spec_cont__Alternatives_in_ruleswitch_type_spec_cont1482 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulecase_stmt_in_entryRulecase_stmt1509 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRulecase_stmt1516 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Alternatives_in_rulecase_stmt1542 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleenum_type_in_entryRuleenum_type1569 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleenum_type1576 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Enum_type__Group__0_in_ruleenum_type1602 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleenum_member_in_entryRuleenum_member1629 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleenum_member1636 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Enum_member__IdentifierAssignment_in_ruleenum_member1662 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleconstr_forward_decl_in_entryRuleconstr_forward_decl1689 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleconstr_forward_decl1696 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Constr_forward_decl__Alternatives_in_ruleconstr_forward_decl1722 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleconst_decl_in_entryRuleconst_decl1749 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleconst_decl1756 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Const_decl__Group__0_in_ruleconst_decl1782 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleconst_type_in_entryRuleconst_type1809 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleconst_type1816 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Const_type__Alternatives_in_ruleconst_type1842 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleprimitive_def_in_entryRuleprimitive_def1869 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleprimitive_def1876 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Primitive_def__Alternatives_in_ruleprimitive_def1902 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulesequence_type_in_entryRulesequence_type1929 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRulesequence_type1936 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Sequence_type__Group__0_in_rulesequence_type1962 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulestringdef_type_in_entryRulestringdef_type1989 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRulestringdef_type1996 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Stringdef_type__Group__0_in_rulestringdef_type2022 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulewide_stringdef_type_in_entryRulewide_stringdef_type2049 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRulewide_stringdef_type2056 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Wide_stringdef_type__Group__0_in_rulewide_stringdef_type2082 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulefixed_pt_type_in_entryRulefixed_pt_type2109 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRulefixed_pt_type2116 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Fixed_pt_type__Group__0_in_rulefixed_pt_type2142 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulefloating_pt_type_in_entryRulefloating_pt_type2169 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRulefloating_pt_type2176 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Floating_pt_type__Alternatives_in_rulefloating_pt_type2202 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulelongdouble_type_in_entryRulelongdouble_type2229 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRulelongdouble_type2236 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Longdouble_type__Group__0_in_rulelongdouble_type2262 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleinteger_type_in_entryRuleinteger_type2289 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleinteger_type2296 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Integer_type__Alternatives_in_ruleinteger_type2322 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulelonglong_type_in_entryRulelonglong_type2349 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRulelonglong_type2356 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Longlong_type__Group__0_in_rulelonglong_type2382 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleushort_type_in_entryRuleushort_type2409 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleushort_type2416 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Ushort_type__Group__0_in_ruleushort_type2442 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleulong_type_in_entryRuleulong_type2469 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleulong_type2476 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Ulong_type__Group__0_in_ruleulong_type2502 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleulonglong_type_in_entryRuleulonglong_type2529 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleulonglong_type2536 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Ulonglong_type__Group__0_in_ruleulonglong_type2562 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulecharstr_type_in_entryRulecharstr_type2589 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRulecharstr_type2596 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Charstr_type__Alternatives_in_rulecharstr_type2622 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleother_type_in_entryRuleother_type2649 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleother_type2656 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Other_type__Alternatives_in_ruleother_type2682 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulefixed_pt_const_type_in_entryRulefixed_pt_const_type2709 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRulefixed_pt_const_type2716 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Fixed_pt_const_type__Group__0_in_rulefixed_pt_const_type2742 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleconst_exp_in_entryRuleconst_exp2769 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleconst_exp2776 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleor_expr_in_ruleconst_exp2802 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleor_expr_in_entryRuleor_expr2828 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleor_expr2835 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Or_expr__Group__0_in_ruleor_expr2861 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulexor_expr_in_entryRulexor_expr2888 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRulexor_expr2895 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Xor_expr__Group__0_in_rulexor_expr2921 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleand_expr_in_entryRuleand_expr2948 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleand_expr2955 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__And_expr__Group__0_in_ruleand_expr2981 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleshift_expr_in_entryRuleshift_expr3008 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleshift_expr3015 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Shift_expr__Group__0_in_ruleshift_expr3041 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleadd_expr_in_entryRuleadd_expr3068 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleadd_expr3075 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Add_expr__Group__0_in_ruleadd_expr3101 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulemult_expr_in_entryRulemult_expr3128 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRulemult_expr3135 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Mult_expr__Group__0_in_rulemult_expr3161 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleunary_expr_in_entryRuleunary_expr3188 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleunary_expr3195 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Unary_expr__Alternatives_in_ruleunary_expr3221 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleunary_operator_in_entryRuleunary_operator3248 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleunary_operator3255 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Unary_operator__Alternatives_in_ruleunary_operator3281 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleprimary_expr_in_entryRuleprimary_expr3308 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleprimary_expr3315 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Primary_expr__Alternatives_in_ruleprimary_expr3341 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleconstantDefRef_in_entryRuleconstantDefRef3368 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleconstantDefRef3375 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__ConstantDefRef__ConstantAssignment_in_ruleconstantDefRef3401 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulevalueExpression_in_entryRulevalueExpression3428 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRulevalueExpression3435 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__ValueExpression__ValueAssignment_in_rulevalueExpression3461 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleliteral_in_entryRuleliteral3488 = new BitSet(new long[]{0x0000000000000000L});
        public static final BitSet FOLLOW_EOF_in_entryRuleliteral3495 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Literal__Alternatives_in_ruleliteral3521 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Param_attribute__Alternatives_in_ruleparam_attribute3558 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_16_in_rulefloat_type3595 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_17_in_ruledouble_type3634 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_18_in_ruleshort_type3673 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_19_in_rulelong_type3712 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_20_in_rulechar_type3751 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_21_in_rulewide_char_type3790 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_22_in_rulestring_type3829 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_23_in_rulewide_string_type3868 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_24_in_ruleboolean_type3907 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_25_in_ruleoctet_type3946 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_26_in_ruleany_type3985 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_27_in_ruleobject_type4024 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_28_in_rulevoid_type4063 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Definition__Group_0__0_in_rule__Definition__Alternatives4100 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Definition__Group_1__0_in_rule__Definition__Alternatives4118 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Definition__Group_2__0_in_rule__Definition__Alternatives4136 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Definition__Group_3__0_in_rule__Definition__Alternatives4154 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Definition__Group_4__0_in_rule__Definition__Alternatives4172 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Definition__Group_5__0_in_rule__Definition__Alternatives4190 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Module__ContainsAssignment_3_0_in_rule__Module__Alternatives_34223 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_29_in_rule__Module__Alternatives_34242 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_decl__IsAbstractAssignment_0_0_in_rule__Interface_decl__Alternatives_04276 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_decl__IsCustomAssignment_0_1_in_rule__Interface_decl__Alternatives_04294 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_decl__ContainsAssignment_5_0_in_rule__Interface_decl__Alternatives_54327 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_29_in_rule__Interface_decl__Alternatives_54346 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_30_in_rule__Interface_fwd__Alternatives_04381 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_31_in_rule__Interface_fwd__Alternatives_04401 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Export__Group_0__0_in_rule__Export__Alternatives4435 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Export__Group_1__0_in_rule__Export__Alternatives4453 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Export__Group_2__0_in_rule__Export__Alternatives4471 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Export__Group_3__0_in_rule__Export__Alternatives4489 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Export__Group_4__0_in_rule__Export__Alternatives4507 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__ContainedTypeAssignment_1_0_in_rule__Op_decl__Alternatives_14540 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__SharedTypeAssignment_1_1_in_rule__Op_decl__Alternatives_14558 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulebase_type_spec_in_rule__Op_type_spec__Alternatives4591 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_type_spec__Group_1__0_in_rule__Op_type_spec__Alternatives4608 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Param_decl__ContainedTypeAssignment_1_0_in_rule__Param_decl__Alternatives_14641 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Param_decl__SharedTypeAssignment_1_1_in_rule__Param_decl__Alternatives_14659 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulereadonly_attr_spec_in_rule__Attr_decl__Alternatives4692 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleattr_spec_in_rule__Attr_decl__Alternatives4709 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_0__0_in_rule__Readonly_attr_spec__Alternatives4741 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_1__0_in_rule__Readonly_attr_spec__Alternatives4759 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__ContainedTypeAssignment_0_2_0_in_rule__Readonly_attr_spec__Alternatives_0_24792 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__SharedTypeAssignment_0_2_1_in_rule__Readonly_attr_spec__Alternatives_0_24810 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__ContainedTypeAssignment_1_2_0_in_rule__Readonly_attr_spec__Alternatives_1_24843 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__SharedTypeAssignment_1_2_1_in_rule__Readonly_attr_spec__Alternatives_1_24861 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0__0_in_rule__Attr_spec__Alternatives4894 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_1__0_in_rule__Attr_spec__Alternatives4912 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__ContainedTypeAssignment_0_1_0_in_rule__Attr_spec__Alternatives_0_14945 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__SharedTypeAssignment_0_1_1_in_rule__Attr_spec__Alternatives_0_14963 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0__0_in_rule__Attr_spec__Alternatives_0_34996 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_1__0_in_rule__Attr_spec__Alternatives_0_35014 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__ContainedTypeAssignment_1_1_0_in_rule__Attr_spec__Alternatives_1_15047 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__SharedTypeAssignment_1_1_1_in_rule__Attr_spec__Alternatives_1_15065 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulealias_type_in_rule__Type_decl__Alternatives5098 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulestruct_type_in_rule__Type_decl__Alternatives5115 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleunion_type_in_rule__Type_decl__Alternatives5132 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleenum_type_in_rule__Type_decl__Alternatives5149 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Type_decl__Group_4__0_in_rule__Type_decl__Alternatives5166 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleconstr_forward_decl_in_rule__Type_decl__Alternatives5184 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Alias_type__Group_0__0_in_rule__Alias_type__Alternatives5216 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Alias_type__Group_1__0_in_rule__Alias_type__Alternatives5234 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Alias_type__ContainedTypeAssignment_1_1_0_in_rule__Alias_type__Alternatives_1_15267 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Alias_type__SharedTypeAssignment_1_1_1_in_rule__Alias_type__Alternatives_1_15285 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Array_type_spec__ContainedTypeAssignment_0_0_in_rule__Array_type_spec__Alternatives_05318 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Array_type_spec__SharedTypeAssignment_0_1_in_rule__Array_type_spec__Alternatives_05336 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulebase_type_spec_in_rule__Simple_type_spec__Alternatives5369 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruletemplate_type_spec_in_rule__Simple_type_spec__Alternatives5386 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleprimitive_def_in_rule__Base_type_spec__Alternatives5418 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Base_type_spec__KindAssignment_1_in_rule__Base_type_spec__Alternatives5435 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulesequence_type_in_rule__Template_type_spec__Alternatives5468 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulestringdef_type_in_rule__Template_type_spec__Alternatives5485 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulewide_stringdef_type_in_rule__Template_type_spec__Alternatives5502 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulefixed_pt_type_in_rule__Template_type_spec__Alternatives5519 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Member__Group_0__0_in_rule__Member__Alternatives5552 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Member__Group_1__0_in_rule__Member__Alternatives5570 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Member__Group_2__0_in_rule__Member__Alternatives5588 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Member__Group_3__0_in_rule__Member__Alternatives5606 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Union_type__ContainedDiscrimAssignment_4_0_in_rule__Union_type__Alternatives_45639 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Union_type__SharedDiscrimAssignment_4_1_in_rule__Union_type__Alternatives_45657 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleinteger_type_in_rule__Switch_type_spec_cont__Alternatives5690 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Switch_type_spec_cont__Group_1__0_in_rule__Switch_type_spec_cont__Alternatives5707 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Switch_type_spec_cont__Group_2__0_in_rule__Switch_type_spec_cont__Alternatives5725 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleenum_type_in_rule__Switch_type_spec_cont__Alternatives5743 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_0__0_in_rule__Case_stmt__Alternatives5775 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_1__0_in_rule__Case_stmt__Alternatives5793 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_0_0_0__0_in_rule__Case_stmt__Alternatives_0_05826 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_0_0_1__0_in_rule__Case_stmt__Alternatives_0_05844 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_1_0_0__0_in_rule__Case_stmt__Alternatives_1_05877 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_1_0_1__0_in_rule__Case_stmt__Alternatives_1_05895 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__ContainedTypeAssignment_1_1_0_in_rule__Case_stmt__Alternatives_1_15928 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__SharedTypeAssignment_1_1_1_in_rule__Case_stmt__Alternatives_1_15946 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Constr_forward_decl__Group_0__0_in_rule__Constr_forward_decl__Alternatives5979 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Constr_forward_decl__Group_1__0_in_rule__Constr_forward_decl__Alternatives5997 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Const_decl__ContainedTypeAssignment_1_0_in_rule__Const_decl__Alternatives_16030 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Const_decl__SharedTypeAssignment_1_1_in_rule__Const_decl__Alternatives_16048 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleprimitive_def_in_rule__Const_type__Alternatives6081 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulestringdef_type_in_rule__Const_type__Alternatives6098 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulewide_stringdef_type_in_rule__Const_type__Alternatives6115 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulefixed_pt_const_type_in_rule__Const_type__Alternatives6132 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleinteger_type_in_rule__Primitive_def__Alternatives6164 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulefloating_pt_type_in_rule__Primitive_def__Alternatives6181 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulecharstr_type_in_rule__Primitive_def__Alternatives6198 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleother_type_in_rule__Primitive_def__Alternatives6215 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Sequence_type__ContainedTypeAssignment_2_0_in_rule__Sequence_type__Alternatives_26247 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Sequence_type__SharedTypeAssignment_2_1_in_rule__Sequence_type__Alternatives_26265 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Floating_pt_type__KindAssignment_0_in_rule__Floating_pt_type__Alternatives6298 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Floating_pt_type__KindAssignment_1_in_rule__Floating_pt_type__Alternatives6316 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Floating_pt_type__KindAssignment_2_in_rule__Floating_pt_type__Alternatives6334 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Integer_type__KindAssignment_0_in_rule__Integer_type__Alternatives6367 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Integer_type__KindAssignment_1_in_rule__Integer_type__Alternatives6385 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Integer_type__KindAssignment_2_in_rule__Integer_type__Alternatives6403 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Integer_type__KindAssignment_3_in_rule__Integer_type__Alternatives6421 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Integer_type__KindAssignment_4_in_rule__Integer_type__Alternatives6439 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Integer_type__KindAssignment_5_in_rule__Integer_type__Alternatives6457 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Charstr_type__KindAssignment_0_in_rule__Charstr_type__Alternatives6490 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Charstr_type__KindAssignment_1_in_rule__Charstr_type__Alternatives6508 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Charstr_type__KindAssignment_2_in_rule__Charstr_type__Alternatives6526 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Charstr_type__KindAssignment_3_in_rule__Charstr_type__Alternatives6544 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Other_type__KindAssignment_0_in_rule__Other_type__Alternatives6577 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Other_type__KindAssignment_1_in_rule__Other_type__Alternatives6595 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Other_type__KindAssignment_2_in_rule__Other_type__Alternatives6613 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_32_in_rule__Shift_expr__OperatorAlternatives_1_1_06647 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_33_in_rule__Shift_expr__OperatorAlternatives_1_1_06667 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_34_in_rule__Add_expr__OperatorAlternatives_1_1_06702 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_35_in_rule__Add_expr__OperatorAlternatives_1_1_06722 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_36_in_rule__Mult_expr__OperatorAlternatives_1_1_06757 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_37_in_rule__Mult_expr__OperatorAlternatives_1_1_06777 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_38_in_rule__Mult_expr__OperatorAlternatives_1_1_06797 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Unary_expr__Group_0__0_in_rule__Unary_expr__Alternatives6831 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleprimary_expr_in_rule__Unary_expr__Alternatives6849 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_35_in_rule__Unary_operator__Alternatives6882 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_34_in_rule__Unary_operator__Alternatives6902 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_39_in_rule__Unary_operator__Alternatives6922 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleconstantDefRef_in_rule__Primary_expr__Alternatives6956 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulevalueExpression_in_rule__Primary_expr__Alternatives6973 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Primary_expr__Group_2__0_in_rule__Primary_expr__Alternatives6990 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_INT_in_rule__Literal__Alternatives7023 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_STRING_in_rule__Literal__Alternatives7040 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_HEX_LITERAL_in_rule__Literal__Alternatives7057 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_WIDE_STRING_LITERAL_in_rule__Literal__Alternatives7074 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_FIXED_PT_LITERAL_in_rule__Literal__Alternatives7091 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_FLOATING_PT_LITERAL_in_rule__Literal__Alternatives7108 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_BOOLEAN_LITERAL_in_rule__Literal__Alternatives7125 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_40_in_rule__Param_attribute__Alternatives7158 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_41_in_rule__Param_attribute__Alternatives7179 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_42_in_rule__Param_attribute__Alternatives7200 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Specification__Group__0__Impl_in_rule__Specification__Group__07233 = new BitSet(new long[]{0xCE009800C0000002L,0x0000000000000018L});
        public static final BitSet FOLLOW_rule__Specification__Group__1_in_rule__Specification__Group__07236 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Specification__Group__1__Impl_in_rule__Specification__Group__17294 = new BitSet(new long[]{0xCE009000C0000002L,0x0000000000000018L});
        public static final BitSet FOLLOW_rule__Specification__Group__2_in_rule__Specification__Group__17297 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Specification__IncludesAssignment_1_in_rule__Specification__Group__1__Impl7324 = new BitSet(new long[]{0x0000080000000002L});
        public static final BitSet FOLLOW_rule__Specification__Group__2__Impl_in_rule__Specification__Group__27355 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Specification__ContainsAssignment_2_in_rule__Specification__Group__2__Impl7382 = new BitSet(new long[]{0xCE009000C0000002L,0x0000000000000018L});
        public static final BitSet FOLLOW_rule__Include_decl__Group__0__Impl_in_rule__Include_decl__Group__07419 = new BitSet(new long[]{0x0000000000000020L});
        public static final BitSet FOLLOW_rule__Include_decl__Group__1_in_rule__Include_decl__Group__07422 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_43_in_rule__Include_decl__Group__0__Impl7450 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Include_decl__Group__1__Impl_in_rule__Include_decl__Group__17481 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Include_decl__ImportURIAssignment_1_in_rule__Include_decl__Group__1__Impl7508 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Definition__Group_0__0__Impl_in_rule__Definition__Group_0__07542 = new BitSet(new long[]{0x0000000020000000L});
        public static final BitSet FOLLOW_rule__Definition__Group_0__1_in_rule__Definition__Group_0__07545 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruletype_decl_in_rule__Definition__Group_0__0__Impl7572 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Definition__Group_0__1__Impl_in_rule__Definition__Group_0__17601 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_29_in_rule__Definition__Group_0__1__Impl7629 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Definition__Group_1__0__Impl_in_rule__Definition__Group_1__07664 = new BitSet(new long[]{0x0000000020000000L});
        public static final BitSet FOLLOW_rule__Definition__Group_1__1_in_rule__Definition__Group_1__07667 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleconst_decl_in_rule__Definition__Group_1__0__Impl7694 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Definition__Group_1__1__Impl_in_rule__Definition__Group_1__17723 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_29_in_rule__Definition__Group_1__1__Impl7751 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Definition__Group_2__0__Impl_in_rule__Definition__Group_2__07786 = new BitSet(new long[]{0x0000000020000000L});
        public static final BitSet FOLLOW_rule__Definition__Group_2__1_in_rule__Definition__Group_2__07789 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleexcept_decl_in_rule__Definition__Group_2__0__Impl7816 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Definition__Group_2__1__Impl_in_rule__Definition__Group_2__17845 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_29_in_rule__Definition__Group_2__1__Impl7873 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Definition__Group_3__0__Impl_in_rule__Definition__Group_3__07908 = new BitSet(new long[]{0x0000000020000000L});
        public static final BitSet FOLLOW_rule__Definition__Group_3__1_in_rule__Definition__Group_3__07911 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleinterface_decl_in_rule__Definition__Group_3__0__Impl7938 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Definition__Group_3__1__Impl_in_rule__Definition__Group_3__17967 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_29_in_rule__Definition__Group_3__1__Impl7995 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Definition__Group_4__0__Impl_in_rule__Definition__Group_4__08030 = new BitSet(new long[]{0x0000000020000000L});
        public static final BitSet FOLLOW_rule__Definition__Group_4__1_in_rule__Definition__Group_4__08033 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleinterface_fwd_in_rule__Definition__Group_4__0__Impl8060 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Definition__Group_4__1__Impl_in_rule__Definition__Group_4__18089 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_29_in_rule__Definition__Group_4__1__Impl8117 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Definition__Group_5__0__Impl_in_rule__Definition__Group_5__08152 = new BitSet(new long[]{0x0000000020000000L});
        public static final BitSet FOLLOW_rule__Definition__Group_5__1_in_rule__Definition__Group_5__08155 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulemodule_in_rule__Definition__Group_5__0__Impl8182 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Definition__Group_5__1__Impl_in_rule__Definition__Group_5__18211 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_29_in_rule__Definition__Group_5__1__Impl8239 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Module__Group__0__Impl_in_rule__Module__Group__08274 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Module__Group__1_in_rule__Module__Group__08277 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_44_in_rule__Module__Group__0__Impl8305 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Module__Group__1__Impl_in_rule__Module__Group__18336 = new BitSet(new long[]{0x0000200000000000L});
        public static final BitSet FOLLOW_rule__Module__Group__2_in_rule__Module__Group__18339 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Module__IdentifierAssignment_1_in_rule__Module__Group__1__Impl8366 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Module__Group__2__Impl_in_rule__Module__Group__28396 = new BitSet(new long[]{0xCE00D000E0000000L,0x0000000000000018L});
        public static final BitSet FOLLOW_rule__Module__Group__3_in_rule__Module__Group__28399 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_45_in_rule__Module__Group__2__Impl8427 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Module__Group__3__Impl_in_rule__Module__Group__38458 = new BitSet(new long[]{0x0000400000000000L});
        public static final BitSet FOLLOW_rule__Module__Group__4_in_rule__Module__Group__38461 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Module__Alternatives_3_in_rule__Module__Group__3__Impl8488 = new BitSet(new long[]{0xCE009000E0000002L,0x0000000000000018L});
        public static final BitSet FOLLOW_rule__Module__Group__4__Impl_in_rule__Module__Group__48519 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_46_in_rule__Module__Group__4__Impl8547 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_decl__Group__0__Impl_in_rule__Interface_decl__Group__08588 = new BitSet(new long[]{0x0000800000000000L});
        public static final BitSet FOLLOW_rule__Interface_decl__Group__1_in_rule__Interface_decl__Group__08591 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_decl__Alternatives_0_in_rule__Interface_decl__Group__0__Impl8618 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_decl__Group__1__Impl_in_rule__Interface_decl__Group__18649 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Interface_decl__Group__2_in_rule__Interface_decl__Group__18652 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_47_in_rule__Interface_decl__Group__1__Impl8680 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_decl__Group__2__Impl_in_rule__Interface_decl__Group__28711 = new BitSet(new long[]{0x0001200000000000L});
        public static final BitSet FOLLOW_rule__Interface_decl__Group__3_in_rule__Interface_decl__Group__28714 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_decl__IdentifierAssignment_2_in_rule__Interface_decl__Group__2__Impl8741 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_decl__Group__3__Impl_in_rule__Interface_decl__Group__38771 = new BitSet(new long[]{0x0000200000000000L});
        public static final BitSet FOLLOW_rule__Interface_decl__Group__4_in_rule__Interface_decl__Group__38774 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_decl__Group_3__0_in_rule__Interface_decl__Group__3__Impl8801 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_decl__Group__4__Impl_in_rule__Interface_decl__Group__48832 = new BitSet(new long[]{0xCE4040003FFF0800L,0x0000000000001C18L});
        public static final BitSet FOLLOW_rule__Interface_decl__Group__5_in_rule__Interface_decl__Group__48835 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_45_in_rule__Interface_decl__Group__4__Impl8863 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_decl__Group__5__Impl_in_rule__Interface_decl__Group__58894 = new BitSet(new long[]{0x0000400000000000L});
        public static final BitSet FOLLOW_rule__Interface_decl__Group__6_in_rule__Interface_decl__Group__58897 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_decl__Alternatives_5_in_rule__Interface_decl__Group__5__Impl8924 = new BitSet(new long[]{0xCE4000003FFF0802L,0x0000000000001C18L});
        public static final BitSet FOLLOW_rule__Interface_decl__Group__6__Impl_in_rule__Interface_decl__Group__68955 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_46_in_rule__Interface_decl__Group__6__Impl8983 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_decl__Group_3__0__Impl_in_rule__Interface_decl__Group_3__09028 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Interface_decl__Group_3__1_in_rule__Interface_decl__Group_3__09031 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_48_in_rule__Interface_decl__Group_3__0__Impl9059 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_decl__Group_3__1__Impl_in_rule__Interface_decl__Group_3__19090 = new BitSet(new long[]{0x0002000000000002L});
        public static final BitSet FOLLOW_rule__Interface_decl__Group_3__2_in_rule__Interface_decl__Group_3__19093 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_decl__DerivesFromAssignment_3_1_in_rule__Interface_decl__Group_3__1__Impl9120 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_decl__Group_3__2__Impl_in_rule__Interface_decl__Group_3__29150 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_decl__Group_3_2__0_in_rule__Interface_decl__Group_3__2__Impl9177 = new BitSet(new long[]{0x0002000000000002L});
        public static final BitSet FOLLOW_rule__Interface_decl__Group_3_2__0__Impl_in_rule__Interface_decl__Group_3_2__09214 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Interface_decl__Group_3_2__1_in_rule__Interface_decl__Group_3_2__09217 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_49_in_rule__Interface_decl__Group_3_2__0__Impl9245 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_decl__Group_3_2__1__Impl_in_rule__Interface_decl__Group_3_2__19276 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_decl__DerivesFromAssignment_3_2_1_in_rule__Interface_decl__Group_3_2__1__Impl9303 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_fwd__Group__0__Impl_in_rule__Interface_fwd__Group__09337 = new BitSet(new long[]{0x0000800000000000L});
        public static final BitSet FOLLOW_rule__Interface_fwd__Group__1_in_rule__Interface_fwd__Group__09340 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_fwd__Alternatives_0_in_rule__Interface_fwd__Group__0__Impl9367 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_fwd__Group__1__Impl_in_rule__Interface_fwd__Group__19398 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Interface_fwd__Group__2_in_rule__Interface_fwd__Group__19401 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_47_in_rule__Interface_fwd__Group__1__Impl9429 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_fwd__Group__2__Impl_in_rule__Interface_fwd__Group__29460 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Interface_fwd__IdentifierAssignment_2_in_rule__Interface_fwd__Group__2__Impl9487 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Export__Group_0__0__Impl_in_rule__Export__Group_0__09523 = new BitSet(new long[]{0x0000000020000000L});
        public static final BitSet FOLLOW_rule__Export__Group_0__1_in_rule__Export__Group_0__09526 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruletype_decl_in_rule__Export__Group_0__0__Impl9553 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Export__Group_0__1__Impl_in_rule__Export__Group_0__19582 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_29_in_rule__Export__Group_0__1__Impl9610 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Export__Group_1__0__Impl_in_rule__Export__Group_1__09645 = new BitSet(new long[]{0x0000000020000000L});
        public static final BitSet FOLLOW_rule__Export__Group_1__1_in_rule__Export__Group_1__09648 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleconst_decl_in_rule__Export__Group_1__0__Impl9675 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Export__Group_1__1__Impl_in_rule__Export__Group_1__19704 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_29_in_rule__Export__Group_1__1__Impl9732 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Export__Group_2__0__Impl_in_rule__Export__Group_2__09767 = new BitSet(new long[]{0x0000000020000000L});
        public static final BitSet FOLLOW_rule__Export__Group_2__1_in_rule__Export__Group_2__09770 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleexcept_decl_in_rule__Export__Group_2__0__Impl9797 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Export__Group_2__1__Impl_in_rule__Export__Group_2__19826 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_29_in_rule__Export__Group_2__1__Impl9854 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Export__Group_3__0__Impl_in_rule__Export__Group_3__09889 = new BitSet(new long[]{0x0000000020000000L});
        public static final BitSet FOLLOW_rule__Export__Group_3__1_in_rule__Export__Group_3__09892 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleattr_decl_in_rule__Export__Group_3__0__Impl9919 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Export__Group_3__1__Impl_in_rule__Export__Group_3__19948 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_29_in_rule__Export__Group_3__1__Impl9976 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Export__Group_4__0__Impl_in_rule__Export__Group_4__010011 = new BitSet(new long[]{0x0000000020000000L});
        public static final BitSet FOLLOW_rule__Export__Group_4__1_in_rule__Export__Group_4__010014 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleop_decl_in_rule__Export__Group_4__0__Impl10041 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Export__Group_4__1__Impl_in_rule__Export__Group_4__110070 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_29_in_rule__Export__Group_4__1__Impl10098 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group__0__Impl_in_rule__Op_decl__Group__010133 = new BitSet(new long[]{0x000000001FFF0800L,0x0000000000000400L});
        public static final BitSet FOLLOW_rule__Op_decl__Group__1_in_rule__Op_decl__Group__010136 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__IsOnewayAssignment_0_in_rule__Op_decl__Group__0__Impl10163 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group__1__Impl_in_rule__Op_decl__Group__110194 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Op_decl__Group__2_in_rule__Op_decl__Group__110197 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Alternatives_1_in_rule__Op_decl__Group__1__Impl10224 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group__2__Impl_in_rule__Op_decl__Group__210254 = new BitSet(new long[]{0x0004000000000000L});
        public static final BitSet FOLLOW_rule__Op_decl__Group__3_in_rule__Op_decl__Group__210257 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__IdentifierAssignment_2_in_rule__Op_decl__Group__2__Impl10284 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group__3__Impl_in_rule__Op_decl__Group__310314 = new BitSet(new long[]{0x0008070000000000L});
        public static final BitSet FOLLOW_rule__Op_decl__Group__4_in_rule__Op_decl__Group__310317 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_50_in_rule__Op_decl__Group__3__Impl10345 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group__4__Impl_in_rule__Op_decl__Group__410376 = new BitSet(new long[]{0x0008000000000000L});
        public static final BitSet FOLLOW_rule__Op_decl__Group__5_in_rule__Op_decl__Group__410379 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_4__0_in_rule__Op_decl__Group__4__Impl10406 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group__5__Impl_in_rule__Op_decl__Group__510437 = new BitSet(new long[]{0x0030000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group__6_in_rule__Op_decl__Group__510440 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_51_in_rule__Op_decl__Group__5__Impl10468 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group__6__Impl_in_rule__Op_decl__Group__610499 = new BitSet(new long[]{0x0020000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group__7_in_rule__Op_decl__Group__610502 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_6__0_in_rule__Op_decl__Group__6__Impl10529 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group__7__Impl_in_rule__Op_decl__Group__710560 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_7__0_in_rule__Op_decl__Group__7__Impl10587 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_4__0__Impl_in_rule__Op_decl__Group_4__010634 = new BitSet(new long[]{0x0002000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_4__1_in_rule__Op_decl__Group_4__010637 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__ParametersAssignment_4_0_in_rule__Op_decl__Group_4__0__Impl10664 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_4__1__Impl_in_rule__Op_decl__Group_4__110694 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_4_1__0_in_rule__Op_decl__Group_4__1__Impl10721 = new BitSet(new long[]{0x0002000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_4_1__0__Impl_in_rule__Op_decl__Group_4_1__010756 = new BitSet(new long[]{0x0000070000000000L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_4_1__1_in_rule__Op_decl__Group_4_1__010759 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_49_in_rule__Op_decl__Group_4_1__0__Impl10787 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_4_1__1__Impl_in_rule__Op_decl__Group_4_1__110818 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__ParametersAssignment_4_1_1_in_rule__Op_decl__Group_4_1__1__Impl10845 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_6__0__Impl_in_rule__Op_decl__Group_6__010879 = new BitSet(new long[]{0x0004000000000000L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_6__1_in_rule__Op_decl__Group_6__010882 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_52_in_rule__Op_decl__Group_6__0__Impl10910 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_6__1__Impl_in_rule__Op_decl__Group_6__110941 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_6__2_in_rule__Op_decl__Group_6__110944 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_50_in_rule__Op_decl__Group_6__1__Impl10972 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_6__2__Impl_in_rule__Op_decl__Group_6__211003 = new BitSet(new long[]{0x000A000000000000L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_6__3_in_rule__Op_decl__Group_6__211006 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__CanRaiseAssignment_6_2_in_rule__Op_decl__Group_6__2__Impl11033 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_6__3__Impl_in_rule__Op_decl__Group_6__311063 = new BitSet(new long[]{0x0008000000000000L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_6__4_in_rule__Op_decl__Group_6__311066 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_6_3__0_in_rule__Op_decl__Group_6__3__Impl11093 = new BitSet(new long[]{0x0002000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_6__4__Impl_in_rule__Op_decl__Group_6__411124 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_51_in_rule__Op_decl__Group_6__4__Impl11152 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_6_3__0__Impl_in_rule__Op_decl__Group_6_3__011193 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_6_3__1_in_rule__Op_decl__Group_6_3__011196 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_49_in_rule__Op_decl__Group_6_3__0__Impl11224 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_6_3__1__Impl_in_rule__Op_decl__Group_6_3__111255 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__CanRaiseAssignment_6_3_1_in_rule__Op_decl__Group_6_3__1__Impl11282 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_7__0__Impl_in_rule__Op_decl__Group_7__011316 = new BitSet(new long[]{0x0004000000000000L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_7__1_in_rule__Op_decl__Group_7__011319 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_53_in_rule__Op_decl__Group_7__0__Impl11347 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_7__1__Impl_in_rule__Op_decl__Group_7__111378 = new BitSet(new long[]{0x0000000000000020L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_7__2_in_rule__Op_decl__Group_7__111381 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_50_in_rule__Op_decl__Group_7__1__Impl11409 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_7__2__Impl_in_rule__Op_decl__Group_7__211440 = new BitSet(new long[]{0x000A000000000000L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_7__3_in_rule__Op_decl__Group_7__211443 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__ContextsAssignment_7_2_in_rule__Op_decl__Group_7__2__Impl11470 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_7__3__Impl_in_rule__Op_decl__Group_7__311500 = new BitSet(new long[]{0x0008000000000000L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_7__4_in_rule__Op_decl__Group_7__311503 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_7_3__0_in_rule__Op_decl__Group_7__3__Impl11530 = new BitSet(new long[]{0x0002000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_7__4__Impl_in_rule__Op_decl__Group_7__411561 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_51_in_rule__Op_decl__Group_7__4__Impl11589 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_7_3__0__Impl_in_rule__Op_decl__Group_7_3__011630 = new BitSet(new long[]{0x0000000000000020L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_7_3__1_in_rule__Op_decl__Group_7_3__011633 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_49_in_rule__Op_decl__Group_7_3__0__Impl11661 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__Group_7_3__1__Impl_in_rule__Op_decl__Group_7_3__111692 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_decl__ContextsAssignment_7_3_1_in_rule__Op_decl__Group_7_3__1__Impl11719 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_type_spec__Group_1__0__Impl_in_rule__Op_type_spec__Group_1__011753 = new BitSet(new long[]{0x0000000010000000L});
        public static final BitSet FOLLOW_rule__Op_type_spec__Group_1__1_in_rule__Op_type_spec__Group_1__011756 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_type_spec__Group_1__1__Impl_in_rule__Op_type_spec__Group_1__111814 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Op_type_spec__KindAssignment_1_1_in_rule__Op_type_spec__Group_1__1__Impl11841 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Param_decl__Group__0__Impl_in_rule__Param_decl__Group__011875 = new BitSet(new long[]{0x000000000FFF0800L,0x0000000000000400L});
        public static final BitSet FOLLOW_rule__Param_decl__Group__1_in_rule__Param_decl__Group__011878 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Param_decl__DirectionAssignment_0_in_rule__Param_decl__Group__0__Impl11905 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Param_decl__Group__1__Impl_in_rule__Param_decl__Group__111935 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Param_decl__Group__2_in_rule__Param_decl__Group__111938 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Param_decl__Alternatives_1_in_rule__Param_decl__Group__1__Impl11965 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Param_decl__Group__2__Impl_in_rule__Param_decl__Group__211995 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Param_decl__IdentifierAssignment_2_in_rule__Param_decl__Group__2__Impl12022 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_0__0__Impl_in_rule__Readonly_attr_spec__Group_0__012058 = new BitSet(new long[]{0x0040000000000000L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_0__1_in_rule__Readonly_attr_spec__Group_0__012061 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__IsReadonlyAssignment_0_0_in_rule__Readonly_attr_spec__Group_0__0__Impl12088 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_0__1__Impl_in_rule__Readonly_attr_spec__Group_0__112118 = new BitSet(new long[]{0x000000000FFF0800L,0x0000000000000400L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_0__2_in_rule__Readonly_attr_spec__Group_0__112121 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_54_in_rule__Readonly_attr_spec__Group_0__1__Impl12149 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_0__2__Impl_in_rule__Readonly_attr_spec__Group_0__212180 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_0__3_in_rule__Readonly_attr_spec__Group_0__212183 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Alternatives_0_2_in_rule__Readonly_attr_spec__Group_0__2__Impl12210 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_0__3__Impl_in_rule__Readonly_attr_spec__Group_0__312240 = new BitSet(new long[]{0x0010000000000000L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_0__4_in_rule__Readonly_attr_spec__Group_0__312243 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__IdentifierAssignment_0_3_in_rule__Readonly_attr_spec__Group_0__3__Impl12270 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_0__4__Impl_in_rule__Readonly_attr_spec__Group_0__412300 = new BitSet(new long[]{0x0004000000000000L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_0__5_in_rule__Readonly_attr_spec__Group_0__412303 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_52_in_rule__Readonly_attr_spec__Group_0__4__Impl12331 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_0__5__Impl_in_rule__Readonly_attr_spec__Group_0__512362 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_0__6_in_rule__Readonly_attr_spec__Group_0__512365 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_50_in_rule__Readonly_attr_spec__Group_0__5__Impl12393 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_0__6__Impl_in_rule__Readonly_attr_spec__Group_0__612424 = new BitSet(new long[]{0x000A000000000000L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_0__7_in_rule__Readonly_attr_spec__Group_0__612427 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__GetRaisesAssignment_0_6_in_rule__Readonly_attr_spec__Group_0__6__Impl12454 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_0__7__Impl_in_rule__Readonly_attr_spec__Group_0__712484 = new BitSet(new long[]{0x0008000000000000L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_0__8_in_rule__Readonly_attr_spec__Group_0__712487 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_0_7__0_in_rule__Readonly_attr_spec__Group_0__7__Impl12514 = new BitSet(new long[]{0x0002000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_0__8__Impl_in_rule__Readonly_attr_spec__Group_0__812545 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_51_in_rule__Readonly_attr_spec__Group_0__8__Impl12573 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_0_7__0__Impl_in_rule__Readonly_attr_spec__Group_0_7__012622 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_0_7__1_in_rule__Readonly_attr_spec__Group_0_7__012625 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_49_in_rule__Readonly_attr_spec__Group_0_7__0__Impl12653 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_0_7__1__Impl_in_rule__Readonly_attr_spec__Group_0_7__112684 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__GetRaisesAssignment_0_7_1_in_rule__Readonly_attr_spec__Group_0_7__1__Impl12711 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_1__0__Impl_in_rule__Readonly_attr_spec__Group_1__012745 = new BitSet(new long[]{0x0040000000000000L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_1__1_in_rule__Readonly_attr_spec__Group_1__012748 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__IsReadonlyAssignment_1_0_in_rule__Readonly_attr_spec__Group_1__0__Impl12775 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_1__1__Impl_in_rule__Readonly_attr_spec__Group_1__112805 = new BitSet(new long[]{0x000000000FFF0800L,0x0000000000000400L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_1__2_in_rule__Readonly_attr_spec__Group_1__112808 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_54_in_rule__Readonly_attr_spec__Group_1__1__Impl12836 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_1__2__Impl_in_rule__Readonly_attr_spec__Group_1__212867 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_1__3_in_rule__Readonly_attr_spec__Group_1__212870 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Alternatives_1_2_in_rule__Readonly_attr_spec__Group_1__2__Impl12897 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__Group_1__3__Impl_in_rule__Readonly_attr_spec__Group_1__312927 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Readonly_attr_spec__IdentifierAssignment_1_3_in_rule__Readonly_attr_spec__Group_1__3__Impl12954 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0__0__Impl_in_rule__Attr_spec__Group_0__012992 = new BitSet(new long[]{0x000000000FFF0800L,0x0000000000000400L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0__1_in_rule__Attr_spec__Group_0__012995 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_54_in_rule__Attr_spec__Group_0__0__Impl13023 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0__1__Impl_in_rule__Attr_spec__Group_0__113054 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0__2_in_rule__Attr_spec__Group_0__113057 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Alternatives_0_1_in_rule__Attr_spec__Group_0__1__Impl13084 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0__2__Impl_in_rule__Attr_spec__Group_0__213114 = new BitSet(new long[]{0x0180000000000000L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0__3_in_rule__Attr_spec__Group_0__213117 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__IdentifierAssignment_0_2_in_rule__Attr_spec__Group_0__2__Impl13144 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0__3__Impl_in_rule__Attr_spec__Group_0__313174 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Alternatives_0_3_in_rule__Attr_spec__Group_0__3__Impl13201 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0__0__Impl_in_rule__Attr_spec__Group_0_3_0__013239 = new BitSet(new long[]{0x0004000000000000L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0__1_in_rule__Attr_spec__Group_0_3_0__013242 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_55_in_rule__Attr_spec__Group_0_3_0__0__Impl13270 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0__1__Impl_in_rule__Attr_spec__Group_0_3_0__113301 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0__2_in_rule__Attr_spec__Group_0_3_0__113304 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_50_in_rule__Attr_spec__Group_0_3_0__1__Impl13332 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0__2__Impl_in_rule__Attr_spec__Group_0_3_0__213363 = new BitSet(new long[]{0x000A000000000000L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0__3_in_rule__Attr_spec__Group_0_3_0__213366 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__GetRaisesAssignment_0_3_0_2_in_rule__Attr_spec__Group_0_3_0__2__Impl13393 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0__3__Impl_in_rule__Attr_spec__Group_0_3_0__313423 = new BitSet(new long[]{0x0008000000000000L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0__4_in_rule__Attr_spec__Group_0_3_0__313426 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0_3__0_in_rule__Attr_spec__Group_0_3_0__3__Impl13453 = new BitSet(new long[]{0x0002000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0__4__Impl_in_rule__Attr_spec__Group_0_3_0__413484 = new BitSet(new long[]{0x0100000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0__5_in_rule__Attr_spec__Group_0_3_0__413487 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_51_in_rule__Attr_spec__Group_0_3_0__4__Impl13515 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0__5__Impl_in_rule__Attr_spec__Group_0_3_0__513546 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0_5__0_in_rule__Attr_spec__Group_0_3_0__5__Impl13573 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0_3__0__Impl_in_rule__Attr_spec__Group_0_3_0_3__013616 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0_3__1_in_rule__Attr_spec__Group_0_3_0_3__013619 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_49_in_rule__Attr_spec__Group_0_3_0_3__0__Impl13647 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0_3__1__Impl_in_rule__Attr_spec__Group_0_3_0_3__113678 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__GetRaisesAssignment_0_3_0_3_1_in_rule__Attr_spec__Group_0_3_0_3__1__Impl13705 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0_5__0__Impl_in_rule__Attr_spec__Group_0_3_0_5__013739 = new BitSet(new long[]{0x0004000000000000L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0_5__1_in_rule__Attr_spec__Group_0_3_0_5__013742 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_56_in_rule__Attr_spec__Group_0_3_0_5__0__Impl13770 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0_5__1__Impl_in_rule__Attr_spec__Group_0_3_0_5__113801 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0_5__2_in_rule__Attr_spec__Group_0_3_0_5__113804 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_50_in_rule__Attr_spec__Group_0_3_0_5__1__Impl13832 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0_5__2__Impl_in_rule__Attr_spec__Group_0_3_0_5__213863 = new BitSet(new long[]{0x000A000000000000L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0_5__3_in_rule__Attr_spec__Group_0_3_0_5__213866 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__SetRaisesAssignment_0_3_0_5_2_in_rule__Attr_spec__Group_0_3_0_5__2__Impl13893 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0_5__3__Impl_in_rule__Attr_spec__Group_0_3_0_5__313923 = new BitSet(new long[]{0x0008000000000000L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0_5__4_in_rule__Attr_spec__Group_0_3_0_5__313926 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0_5_3__0_in_rule__Attr_spec__Group_0_3_0_5__3__Impl13953 = new BitSet(new long[]{0x0002000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0_5__4__Impl_in_rule__Attr_spec__Group_0_3_0_5__413984 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_51_in_rule__Attr_spec__Group_0_3_0_5__4__Impl14012 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0_5_3__0__Impl_in_rule__Attr_spec__Group_0_3_0_5_3__014053 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0_5_3__1_in_rule__Attr_spec__Group_0_3_0_5_3__014056 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_49_in_rule__Attr_spec__Group_0_3_0_5_3__0__Impl14084 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_0_5_3__1__Impl_in_rule__Attr_spec__Group_0_3_0_5_3__114115 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__SetRaisesAssignment_0_3_0_5_3_1_in_rule__Attr_spec__Group_0_3_0_5_3__1__Impl14142 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_1__0__Impl_in_rule__Attr_spec__Group_0_3_1__014176 = new BitSet(new long[]{0x0004000000000000L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_1__1_in_rule__Attr_spec__Group_0_3_1__014179 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_56_in_rule__Attr_spec__Group_0_3_1__0__Impl14207 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_1__1__Impl_in_rule__Attr_spec__Group_0_3_1__114238 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_1__2_in_rule__Attr_spec__Group_0_3_1__114241 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_50_in_rule__Attr_spec__Group_0_3_1__1__Impl14269 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_1__2__Impl_in_rule__Attr_spec__Group_0_3_1__214300 = new BitSet(new long[]{0x000A000000000000L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_1__3_in_rule__Attr_spec__Group_0_3_1__214303 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__SetRaisesAssignment_0_3_1_2_in_rule__Attr_spec__Group_0_3_1__2__Impl14330 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_1__3__Impl_in_rule__Attr_spec__Group_0_3_1__314360 = new BitSet(new long[]{0x0008000000000000L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_1__4_in_rule__Attr_spec__Group_0_3_1__314363 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_1_3__0_in_rule__Attr_spec__Group_0_3_1__3__Impl14390 = new BitSet(new long[]{0x0002000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_1__4__Impl_in_rule__Attr_spec__Group_0_3_1__414421 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_51_in_rule__Attr_spec__Group_0_3_1__4__Impl14449 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_1_3__0__Impl_in_rule__Attr_spec__Group_0_3_1_3__014490 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_1_3__1_in_rule__Attr_spec__Group_0_3_1_3__014493 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_49_in_rule__Attr_spec__Group_0_3_1_3__0__Impl14521 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_0_3_1_3__1__Impl_in_rule__Attr_spec__Group_0_3_1_3__114552 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__SetRaisesAssignment_0_3_1_3_1_in_rule__Attr_spec__Group_0_3_1_3__1__Impl14579 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_1__0__Impl_in_rule__Attr_spec__Group_1__014613 = new BitSet(new long[]{0x000000000FFF0800L,0x0000000000000400L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_1__1_in_rule__Attr_spec__Group_1__014616 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_54_in_rule__Attr_spec__Group_1__0__Impl14644 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_1__1__Impl_in_rule__Attr_spec__Group_1__114675 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_1__2_in_rule__Attr_spec__Group_1__114678 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Alternatives_1_1_in_rule__Attr_spec__Group_1__1__Impl14705 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__Group_1__2__Impl_in_rule__Attr_spec__Group_1__214735 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Attr_spec__IdentifierAssignment_1_2_in_rule__Attr_spec__Group_1__2__Impl14762 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Except_decl__Group__0__Impl_in_rule__Except_decl__Group__014798 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Except_decl__Group__1_in_rule__Except_decl__Group__014801 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_57_in_rule__Except_decl__Group__0__Impl14829 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Except_decl__Group__1__Impl_in_rule__Except_decl__Group__114860 = new BitSet(new long[]{0x0000200000000000L});
        public static final BitSet FOLLOW_rule__Except_decl__Group__2_in_rule__Except_decl__Group__114863 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Except_decl__IdentifierAssignment_1_in_rule__Except_decl__Group__1__Impl14890 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Except_decl__Group__2__Impl_in_rule__Except_decl__Group__214920 = new BitSet(new long[]{0x400040000FFF0800L,0x0000000000000640L});
        public static final BitSet FOLLOW_rule__Except_decl__Group__3_in_rule__Except_decl__Group__214923 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_45_in_rule__Except_decl__Group__2__Impl14951 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Except_decl__Group__3__Impl_in_rule__Except_decl__Group__314982 = new BitSet(new long[]{0x0000400000000000L});
        public static final BitSet FOLLOW_rule__Except_decl__Group__4_in_rule__Except_decl__Group__314985 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Except_decl__MembersAssignment_3_in_rule__Except_decl__Group__3__Impl15012 = new BitSet(new long[]{0x400000000FFF0802L,0x0000000000000640L});
        public static final BitSet FOLLOW_rule__Except_decl__Group__4__Impl_in_rule__Except_decl__Group__415043 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_46_in_rule__Except_decl__Group__4__Impl15071 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Type_decl__Group_4__0__Impl_in_rule__Type_decl__Group_4__015112 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Type_decl__Group_4__1_in_rule__Type_decl__Group_4__015115 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_58_in_rule__Type_decl__Group_4__0__Impl15143 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Type_decl__Group_4__1__Impl_in_rule__Type_decl__Group_4__115174 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Type_decl__Group_4__1__Impl15201 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Alias_type__Group_0__0__Impl_in_rule__Alias_type__Group_0__015234 = new BitSet(new long[]{0x000000000FFF0800L,0x0000000000000640L});
        public static final BitSet FOLLOW_rule__Alias_type__Group_0__1_in_rule__Alias_type__Group_0__015237 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_59_in_rule__Alias_type__Group_0__0__Impl15265 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Alias_type__Group_0__1__Impl_in_rule__Alias_type__Group_0__115296 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Alias_type__ContainedTypeAssignment_0_1_in_rule__Alias_type__Group_0__1__Impl15323 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Alias_type__Group_1__0__Impl_in_rule__Alias_type__Group_1__015357 = new BitSet(new long[]{0x000000000FFF0800L,0x0000000000000640L});
        public static final BitSet FOLLOW_rule__Alias_type__Group_1__1_in_rule__Alias_type__Group_1__015360 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_59_in_rule__Alias_type__Group_1__0__Impl15388 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Alias_type__Group_1__1__Impl_in_rule__Alias_type__Group_1__115419 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Alias_type__Group_1__2_in_rule__Alias_type__Group_1__115422 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Alias_type__Alternatives_1_1_in_rule__Alias_type__Group_1__1__Impl15449 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Alias_type__Group_1__2__Impl_in_rule__Alias_type__Group_1__215479 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Alias_type__IdentifierAssignment_1_2_in_rule__Alias_type__Group_1__2__Impl15506 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Array_type_spec__Group__0__Impl_in_rule__Array_type_spec__Group__015542 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Array_type_spec__Group__1_in_rule__Array_type_spec__Group__015545 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Array_type_spec__Alternatives_0_in_rule__Array_type_spec__Group__0__Impl15572 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Array_type_spec__Group__1__Impl_in_rule__Array_type_spec__Group__115602 = new BitSet(new long[]{0x1000000000000000L});
        public static final BitSet FOLLOW_rule__Array_type_spec__Group__2_in_rule__Array_type_spec__Group__115605 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Array_type_spec__NameAssignment_1_in_rule__Array_type_spec__Group__1__Impl15632 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Array_type_spec__Group__2__Impl_in_rule__Array_type_spec__Group__215662 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Array_type_spec__Group_2__0_in_rule__Array_type_spec__Group__2__Impl15691 = new BitSet(new long[]{0x1000000000000002L});
        public static final BitSet FOLLOW_rule__Array_type_spec__Group_2__0_in_rule__Array_type_spec__Group__2__Impl15703 = new BitSet(new long[]{0x1000000000000002L});
        public static final BitSet FOLLOW_rule__Array_type_spec__Group_2__0__Impl_in_rule__Array_type_spec__Group_2__015742 = new BitSet(new long[]{0x0004008C00000FF0L});
        public static final BitSet FOLLOW_rule__Array_type_spec__Group_2__1_in_rule__Array_type_spec__Group_2__015745 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_60_in_rule__Array_type_spec__Group_2__0__Impl15773 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Array_type_spec__Group_2__1__Impl_in_rule__Array_type_spec__Group_2__115804 = new BitSet(new long[]{0x2000000000000000L});
        public static final BitSet FOLLOW_rule__Array_type_spec__Group_2__2_in_rule__Array_type_spec__Group_2__115807 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Array_type_spec__BoundsAssignment_2_1_in_rule__Array_type_spec__Group_2__1__Impl15834 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Array_type_spec__Group_2__2__Impl_in_rule__Array_type_spec__Group_2__215864 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_61_in_rule__Array_type_spec__Group_2__2__Impl15892 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Struct_type__Group__0__Impl_in_rule__Struct_type__Group__015929 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Struct_type__Group__1_in_rule__Struct_type__Group__015932 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_62_in_rule__Struct_type__Group__0__Impl15960 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Struct_type__Group__1__Impl_in_rule__Struct_type__Group__115991 = new BitSet(new long[]{0x0000200000000000L});
        public static final BitSet FOLLOW_rule__Struct_type__Group__2_in_rule__Struct_type__Group__115994 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Struct_type__IdentifierAssignment_1_in_rule__Struct_type__Group__1__Impl16021 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Struct_type__Group__2__Impl_in_rule__Struct_type__Group__216051 = new BitSet(new long[]{0x400000000FFF0800L,0x0000000000000640L});
        public static final BitSet FOLLOW_rule__Struct_type__Group__3_in_rule__Struct_type__Group__216054 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_45_in_rule__Struct_type__Group__2__Impl16082 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Struct_type__Group__3__Impl_in_rule__Struct_type__Group__316113 = new BitSet(new long[]{0x0000400000000000L});
        public static final BitSet FOLLOW_rule__Struct_type__Group__4_in_rule__Struct_type__Group__316116 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Struct_type__MembersAssignment_3_in_rule__Struct_type__Group__3__Impl16145 = new BitSet(new long[]{0x400000000FFF0802L,0x0000000000000640L});
        public static final BitSet FOLLOW_rule__Struct_type__MembersAssignment_3_in_rule__Struct_type__Group__3__Impl16157 = new BitSet(new long[]{0x400000000FFF0802L,0x0000000000000640L});
        public static final BitSet FOLLOW_rule__Struct_type__Group__4__Impl_in_rule__Struct_type__Group__416190 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_46_in_rule__Struct_type__Group__4__Impl16218 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Member__Group_0__0__Impl_in_rule__Member__Group_0__016259 = new BitSet(new long[]{0x0000000020000000L});
        public static final BitSet FOLLOW_rule__Member__Group_0__1_in_rule__Member__Group_0__016262 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Member__ContainedTypeAssignment_0_0_in_rule__Member__Group_0__0__Impl16289 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Member__Group_0__1__Impl_in_rule__Member__Group_0__116319 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_29_in_rule__Member__Group_0__1__Impl16347 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Member__Group_1__0__Impl_in_rule__Member__Group_1__016382 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Member__Group_1__1_in_rule__Member__Group_1__016385 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Member__ContainedTypeAssignment_1_0_in_rule__Member__Group_1__0__Impl16412 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Member__Group_1__1__Impl_in_rule__Member__Group_1__116442 = new BitSet(new long[]{0x0000000020000000L});
        public static final BitSet FOLLOW_rule__Member__Group_1__2_in_rule__Member__Group_1__116445 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Member__IdentifierAssignment_1_1_in_rule__Member__Group_1__1__Impl16472 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Member__Group_1__2__Impl_in_rule__Member__Group_1__216502 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_29_in_rule__Member__Group_1__2__Impl16530 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Member__Group_2__0__Impl_in_rule__Member__Group_2__016567 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Member__Group_2__1_in_rule__Member__Group_2__016570 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Member__ContainedTypeAssignment_2_0_in_rule__Member__Group_2__0__Impl16597 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Member__Group_2__1__Impl_in_rule__Member__Group_2__116627 = new BitSet(new long[]{0x0000000020000000L});
        public static final BitSet FOLLOW_rule__Member__Group_2__2_in_rule__Member__Group_2__116630 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Member__IdentifierAssignment_2_1_in_rule__Member__Group_2__1__Impl16657 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Member__Group_2__2__Impl_in_rule__Member__Group_2__216687 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_29_in_rule__Member__Group_2__2__Impl16715 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Member__Group_3__0__Impl_in_rule__Member__Group_3__016752 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Member__Group_3__1_in_rule__Member__Group_3__016755 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Member__SharedTypeAssignment_3_0_in_rule__Member__Group_3__0__Impl16782 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Member__Group_3__1__Impl_in_rule__Member__Group_3__116812 = new BitSet(new long[]{0x0000000020000000L});
        public static final BitSet FOLLOW_rule__Member__Group_3__2_in_rule__Member__Group_3__116815 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Member__IdentifierAssignment_3_1_in_rule__Member__Group_3__1__Impl16842 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Member__Group_3__2__Impl_in_rule__Member__Group_3__216872 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_29_in_rule__Member__Group_3__2__Impl16900 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Union_type__Group__0__Impl_in_rule__Union_type__Group__016937 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Union_type__Group__1_in_rule__Union_type__Group__016940 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_63_in_rule__Union_type__Group__0__Impl16968 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Union_type__Group__1__Impl_in_rule__Union_type__Group__116999 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000001L});
        public static final BitSet FOLLOW_rule__Union_type__Group__2_in_rule__Union_type__Group__117002 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Union_type__IdentifierAssignment_1_in_rule__Union_type__Group__1__Impl17029 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Union_type__Group__2__Impl_in_rule__Union_type__Group__217059 = new BitSet(new long[]{0x0004000000000000L});
        public static final BitSet FOLLOW_rule__Union_type__Group__3_in_rule__Union_type__Group__217062 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_64_in_rule__Union_type__Group__2__Impl17090 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Union_type__Group__3__Impl_in_rule__Union_type__Group__317121 = new BitSet(new long[]{0x00000000011C0800L,0x0000000000000408L});
        public static final BitSet FOLLOW_rule__Union_type__Group__4_in_rule__Union_type__Group__317124 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_50_in_rule__Union_type__Group__3__Impl17152 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Union_type__Group__4__Impl_in_rule__Union_type__Group__417183 = new BitSet(new long[]{0x0008000000000000L});
        public static final BitSet FOLLOW_rule__Union_type__Group__5_in_rule__Union_type__Group__417186 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Union_type__Alternatives_4_in_rule__Union_type__Group__4__Impl17213 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Union_type__Group__5__Impl_in_rule__Union_type__Group__517243 = new BitSet(new long[]{0x0000200000000000L});
        public static final BitSet FOLLOW_rule__Union_type__Group__6_in_rule__Union_type__Group__517246 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_51_in_rule__Union_type__Group__5__Impl17274 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Union_type__Group__6__Impl_in_rule__Union_type__Group__617305 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000006L});
        public static final BitSet FOLLOW_rule__Union_type__Group__7_in_rule__Union_type__Group__617308 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_45_in_rule__Union_type__Group__6__Impl17336 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Union_type__Group__7__Impl_in_rule__Union_type__Group__717367 = new BitSet(new long[]{0x0000400000000000L});
        public static final BitSet FOLLOW_rule__Union_type__Group__8_in_rule__Union_type__Group__717370 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Union_type__UnionMembersAssignment_7_in_rule__Union_type__Group__7__Impl17399 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000006L});
        public static final BitSet FOLLOW_rule__Union_type__UnionMembersAssignment_7_in_rule__Union_type__Group__7__Impl17411 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000006L});
        public static final BitSet FOLLOW_rule__Union_type__Group__8__Impl_in_rule__Union_type__Group__817444 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_46_in_rule__Union_type__Group__8__Impl17472 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Switch_type_spec_cont__Group_1__0__Impl_in_rule__Switch_type_spec_cont__Group_1__017521 = new BitSet(new long[]{0x0000000000100000L});
        public static final BitSet FOLLOW_rule__Switch_type_spec_cont__Group_1__1_in_rule__Switch_type_spec_cont__Group_1__017524 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Switch_type_spec_cont__Group_1__1__Impl_in_rule__Switch_type_spec_cont__Group_1__117582 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Switch_type_spec_cont__KindAssignment_1_1_in_rule__Switch_type_spec_cont__Group_1__1__Impl17609 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Switch_type_spec_cont__Group_2__0__Impl_in_rule__Switch_type_spec_cont__Group_2__017643 = new BitSet(new long[]{0x0000000001000000L});
        public static final BitSet FOLLOW_rule__Switch_type_spec_cont__Group_2__1_in_rule__Switch_type_spec_cont__Group_2__017646 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Switch_type_spec_cont__Group_2__1__Impl_in_rule__Switch_type_spec_cont__Group_2__117704 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Switch_type_spec_cont__KindAssignment_2_1_in_rule__Switch_type_spec_cont__Group_2__1__Impl17731 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_0__0__Impl_in_rule__Case_stmt__Group_0__017765 = new BitSet(new long[]{0x000000000FFF0800L,0x0000000000000640L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_0__1_in_rule__Case_stmt__Group_0__017768 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Alternatives_0_0_in_rule__Case_stmt__Group_0__0__Impl17797 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000006L});
        public static final BitSet FOLLOW_rule__Case_stmt__Alternatives_0_0_in_rule__Case_stmt__Group_0__0__Impl17809 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000006L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_0__1__Impl_in_rule__Case_stmt__Group_0__117842 = new BitSet(new long[]{0x0000000020000000L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_0__2_in_rule__Case_stmt__Group_0__117845 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__ContainedTypeAssignment_0_1_in_rule__Case_stmt__Group_0__1__Impl17872 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_0__2__Impl_in_rule__Case_stmt__Group_0__217902 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_29_in_rule__Case_stmt__Group_0__2__Impl17930 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_0_0_0__0__Impl_in_rule__Case_stmt__Group_0_0_0__017967 = new BitSet(new long[]{0x0004008C00000FF0L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_0_0_0__1_in_rule__Case_stmt__Group_0_0_0__017970 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_65_in_rule__Case_stmt__Group_0_0_0__0__Impl17998 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_0_0_0__1__Impl_in_rule__Case_stmt__Group_0_0_0__118029 = new BitSet(new long[]{0x0001000000000000L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_0_0_0__2_in_rule__Case_stmt__Group_0_0_0__118032 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__LabelAssignment_0_0_0_1_in_rule__Case_stmt__Group_0_0_0__1__Impl18059 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_0_0_0__2__Impl_in_rule__Case_stmt__Group_0_0_0__218089 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_48_in_rule__Case_stmt__Group_0_0_0__2__Impl18117 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_0_0_1__0__Impl_in_rule__Case_stmt__Group_0_0_1__018154 = new BitSet(new long[]{0x0001000000000000L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_0_0_1__1_in_rule__Case_stmt__Group_0_0_1__018157 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_66_in_rule__Case_stmt__Group_0_0_1__0__Impl18185 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_0_0_1__1__Impl_in_rule__Case_stmt__Group_0_0_1__118216 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_48_in_rule__Case_stmt__Group_0_0_1__1__Impl18244 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_1__0__Impl_in_rule__Case_stmt__Group_1__018279 = new BitSet(new long[]{0x000000000FFF0800L,0x0000000000000640L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_1__1_in_rule__Case_stmt__Group_1__018282 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Alternatives_1_0_in_rule__Case_stmt__Group_1__0__Impl18311 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000006L});
        public static final BitSet FOLLOW_rule__Case_stmt__Alternatives_1_0_in_rule__Case_stmt__Group_1__0__Impl18323 = new BitSet(new long[]{0x0000000000000002L,0x0000000000000006L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_1__1__Impl_in_rule__Case_stmt__Group_1__118356 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_1__2_in_rule__Case_stmt__Group_1__118359 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Alternatives_1_1_in_rule__Case_stmt__Group_1__1__Impl18386 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_1__2__Impl_in_rule__Case_stmt__Group_1__218416 = new BitSet(new long[]{0x0000000020000000L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_1__3_in_rule__Case_stmt__Group_1__218419 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__IdentifierAssignment_1_2_in_rule__Case_stmt__Group_1__2__Impl18446 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_1__3__Impl_in_rule__Case_stmt__Group_1__318476 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_29_in_rule__Case_stmt__Group_1__3__Impl18504 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_1_0_0__0__Impl_in_rule__Case_stmt__Group_1_0_0__018543 = new BitSet(new long[]{0x0004008C00000FF0L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_1_0_0__1_in_rule__Case_stmt__Group_1_0_0__018546 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_65_in_rule__Case_stmt__Group_1_0_0__0__Impl18574 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_1_0_0__1__Impl_in_rule__Case_stmt__Group_1_0_0__118605 = new BitSet(new long[]{0x0001000000000000L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_1_0_0__2_in_rule__Case_stmt__Group_1_0_0__118608 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__LabelAssignment_1_0_0_1_in_rule__Case_stmt__Group_1_0_0__1__Impl18635 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_1_0_0__2__Impl_in_rule__Case_stmt__Group_1_0_0__218665 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_48_in_rule__Case_stmt__Group_1_0_0__2__Impl18693 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_1_0_1__0__Impl_in_rule__Case_stmt__Group_1_0_1__018730 = new BitSet(new long[]{0x0001000000000000L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_1_0_1__1_in_rule__Case_stmt__Group_1_0_1__018733 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_66_in_rule__Case_stmt__Group_1_0_1__0__Impl18761 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_1_0_1__1__Impl_in_rule__Case_stmt__Group_1_0_1__118792 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_48_in_rule__Case_stmt__Group_1_0_1__1__Impl18820 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Enum_type__Group__0__Impl_in_rule__Enum_type__Group__018855 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Enum_type__Group__1_in_rule__Enum_type__Group__018858 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_67_in_rule__Enum_type__Group__0__Impl18886 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Enum_type__Group__1__Impl_in_rule__Enum_type__Group__118917 = new BitSet(new long[]{0x0000200000000000L});
        public static final BitSet FOLLOW_rule__Enum_type__Group__2_in_rule__Enum_type__Group__118920 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Enum_type__IdentifierAssignment_1_in_rule__Enum_type__Group__1__Impl18947 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Enum_type__Group__2__Impl_in_rule__Enum_type__Group__218977 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Enum_type__Group__3_in_rule__Enum_type__Group__218980 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_45_in_rule__Enum_type__Group__2__Impl19008 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Enum_type__Group__3__Impl_in_rule__Enum_type__Group__319039 = new BitSet(new long[]{0x0002400000000000L});
        public static final BitSet FOLLOW_rule__Enum_type__Group__4_in_rule__Enum_type__Group__319042 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Enum_type__MembersAssignment_3_in_rule__Enum_type__Group__3__Impl19069 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Enum_type__Group__4__Impl_in_rule__Enum_type__Group__419099 = new BitSet(new long[]{0x0000400000000000L});
        public static final BitSet FOLLOW_rule__Enum_type__Group__5_in_rule__Enum_type__Group__419102 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Enum_type__Group_4__0_in_rule__Enum_type__Group__4__Impl19129 = new BitSet(new long[]{0x0002000000000002L});
        public static final BitSet FOLLOW_rule__Enum_type__Group__5__Impl_in_rule__Enum_type__Group__519160 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_46_in_rule__Enum_type__Group__5__Impl19188 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Enum_type__Group_4__0__Impl_in_rule__Enum_type__Group_4__019231 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Enum_type__Group_4__1_in_rule__Enum_type__Group_4__019234 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_49_in_rule__Enum_type__Group_4__0__Impl19262 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Enum_type__Group_4__1__Impl_in_rule__Enum_type__Group_4__119293 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Enum_type__MembersAssignment_4_1_in_rule__Enum_type__Group_4__1__Impl19320 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Constr_forward_decl__Group_0__0__Impl_in_rule__Constr_forward_decl__Group_0__019354 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Constr_forward_decl__Group_0__1_in_rule__Constr_forward_decl__Group_0__019357 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_62_in_rule__Constr_forward_decl__Group_0__0__Impl19385 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Constr_forward_decl__Group_0__1__Impl_in_rule__Constr_forward_decl__Group_0__119416 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Constr_forward_decl__Group_0__1__Impl19443 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Constr_forward_decl__Group_1__0__Impl_in_rule__Constr_forward_decl__Group_1__019476 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Constr_forward_decl__Group_1__1_in_rule__Constr_forward_decl__Group_1__019479 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_63_in_rule__Constr_forward_decl__Group_1__0__Impl19507 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Constr_forward_decl__Group_1__1__Impl_in_rule__Constr_forward_decl__Group_1__119538 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Constr_forward_decl__Group_1__1__Impl19565 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Const_decl__Group__0__Impl_in_rule__Const_decl__Group__019598 = new BitSet(new long[]{0x0000000007FF0800L,0x0000000000000600L});
        public static final BitSet FOLLOW_rule__Const_decl__Group__1_in_rule__Const_decl__Group__019601 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_68_in_rule__Const_decl__Group__0__Impl19629 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Const_decl__Group__1__Impl_in_rule__Const_decl__Group__119660 = new BitSet(new long[]{0x0000000000000800L});
        public static final BitSet FOLLOW_rule__Const_decl__Group__2_in_rule__Const_decl__Group__119663 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Const_decl__Alternatives_1_in_rule__Const_decl__Group__1__Impl19690 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Const_decl__Group__2__Impl_in_rule__Const_decl__Group__219720 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000020L});
        public static final BitSet FOLLOW_rule__Const_decl__Group__3_in_rule__Const_decl__Group__219723 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Const_decl__IdentifierAssignment_2_in_rule__Const_decl__Group__2__Impl19750 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Const_decl__Group__3__Impl_in_rule__Const_decl__Group__319780 = new BitSet(new long[]{0x0004008C00000FF0L});
        public static final BitSet FOLLOW_rule__Const_decl__Group__4_in_rule__Const_decl__Group__319783 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_69_in_rule__Const_decl__Group__3__Impl19811 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Const_decl__Group__4__Impl_in_rule__Const_decl__Group__419842 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Const_decl__ConstValueAssignment_4_in_rule__Const_decl__Group__4__Impl19869 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Sequence_type__Group__0__Impl_in_rule__Sequence_type__Group__019909 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
        public static final BitSet FOLLOW_rule__Sequence_type__Group__1_in_rule__Sequence_type__Group__019912 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_70_in_rule__Sequence_type__Group__0__Impl19940 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Sequence_type__Group__1__Impl_in_rule__Sequence_type__Group__119971 = new BitSet(new long[]{0x000000000FFF0800L,0x0000000000000640L});
        public static final BitSet FOLLOW_rule__Sequence_type__Group__2_in_rule__Sequence_type__Group__119974 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_71_in_rule__Sequence_type__Group__1__Impl20002 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Sequence_type__Group__2__Impl_in_rule__Sequence_type__Group__220033 = new BitSet(new long[]{0x0002000000000000L,0x0000000000000100L});
        public static final BitSet FOLLOW_rule__Sequence_type__Group__3_in_rule__Sequence_type__Group__220036 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Sequence_type__Alternatives_2_in_rule__Sequence_type__Group__2__Impl20063 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Sequence_type__Group__3__Impl_in_rule__Sequence_type__Group__320093 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
        public static final BitSet FOLLOW_rule__Sequence_type__Group__4_in_rule__Sequence_type__Group__320096 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Sequence_type__Group_3__0_in_rule__Sequence_type__Group__3__Impl20123 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Sequence_type__Group__4__Impl_in_rule__Sequence_type__Group__420154 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_72_in_rule__Sequence_type__Group__4__Impl20182 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Sequence_type__Group_3__0__Impl_in_rule__Sequence_type__Group_3__020223 = new BitSet(new long[]{0x0004008C00000FF0L});
        public static final BitSet FOLLOW_rule__Sequence_type__Group_3__1_in_rule__Sequence_type__Group_3__020226 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_49_in_rule__Sequence_type__Group_3__0__Impl20254 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Sequence_type__Group_3__1__Impl_in_rule__Sequence_type__Group_3__120285 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Sequence_type__BoundAssignment_3_1_in_rule__Sequence_type__Group_3__1__Impl20312 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Stringdef_type__Group__0__Impl_in_rule__Stringdef_type__Group__020346 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
        public static final BitSet FOLLOW_rule__Stringdef_type__Group__1_in_rule__Stringdef_type__Group__020349 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_22_in_rule__Stringdef_type__Group__0__Impl20377 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Stringdef_type__Group__1__Impl_in_rule__Stringdef_type__Group__120408 = new BitSet(new long[]{0x0004008C00000FF0L});
        public static final BitSet FOLLOW_rule__Stringdef_type__Group__2_in_rule__Stringdef_type__Group__120411 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_71_in_rule__Stringdef_type__Group__1__Impl20439 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Stringdef_type__Group__2__Impl_in_rule__Stringdef_type__Group__220470 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
        public static final BitSet FOLLOW_rule__Stringdef_type__Group__3_in_rule__Stringdef_type__Group__220473 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Stringdef_type__BoundAssignment_2_in_rule__Stringdef_type__Group__2__Impl20500 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Stringdef_type__Group__3__Impl_in_rule__Stringdef_type__Group__320530 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_72_in_rule__Stringdef_type__Group__3__Impl20558 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Wide_stringdef_type__Group__0__Impl_in_rule__Wide_stringdef_type__Group__020597 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
        public static final BitSet FOLLOW_rule__Wide_stringdef_type__Group__1_in_rule__Wide_stringdef_type__Group__020600 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_23_in_rule__Wide_stringdef_type__Group__0__Impl20628 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Wide_stringdef_type__Group__1__Impl_in_rule__Wide_stringdef_type__Group__120659 = new BitSet(new long[]{0x0004008C00000FF0L});
        public static final BitSet FOLLOW_rule__Wide_stringdef_type__Group__2_in_rule__Wide_stringdef_type__Group__120662 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_71_in_rule__Wide_stringdef_type__Group__1__Impl20690 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Wide_stringdef_type__Group__2__Impl_in_rule__Wide_stringdef_type__Group__220721 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
        public static final BitSet FOLLOW_rule__Wide_stringdef_type__Group__3_in_rule__Wide_stringdef_type__Group__220724 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Wide_stringdef_type__BoundAssignment_2_in_rule__Wide_stringdef_type__Group__2__Impl20751 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Wide_stringdef_type__Group__3__Impl_in_rule__Wide_stringdef_type__Group__320781 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_72_in_rule__Wide_stringdef_type__Group__3__Impl20809 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Fixed_pt_type__Group__0__Impl_in_rule__Fixed_pt_type__Group__020848 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000080L});
        public static final BitSet FOLLOW_rule__Fixed_pt_type__Group__1_in_rule__Fixed_pt_type__Group__020851 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_73_in_rule__Fixed_pt_type__Group__0__Impl20879 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Fixed_pt_type__Group__1__Impl_in_rule__Fixed_pt_type__Group__120910 = new BitSet(new long[]{0x0004008C00000FF0L});
        public static final BitSet FOLLOW_rule__Fixed_pt_type__Group__2_in_rule__Fixed_pt_type__Group__120913 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_71_in_rule__Fixed_pt_type__Group__1__Impl20941 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Fixed_pt_type__Group__2__Impl_in_rule__Fixed_pt_type__Group__220972 = new BitSet(new long[]{0x0002000000000000L});
        public static final BitSet FOLLOW_rule__Fixed_pt_type__Group__3_in_rule__Fixed_pt_type__Group__220975 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Fixed_pt_type__DigitsAssignment_2_in_rule__Fixed_pt_type__Group__2__Impl21002 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Fixed_pt_type__Group__3__Impl_in_rule__Fixed_pt_type__Group__321032 = new BitSet(new long[]{0x0004008C00000FF0L});
        public static final BitSet FOLLOW_rule__Fixed_pt_type__Group__4_in_rule__Fixed_pt_type__Group__321035 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_49_in_rule__Fixed_pt_type__Group__3__Impl21063 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Fixed_pt_type__Group__4__Impl_in_rule__Fixed_pt_type__Group__421094 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000100L});
        public static final BitSet FOLLOW_rule__Fixed_pt_type__Group__5_in_rule__Fixed_pt_type__Group__421097 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Fixed_pt_type__ScaleAssignment_4_in_rule__Fixed_pt_type__Group__4__Impl21124 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Fixed_pt_type__Group__5__Impl_in_rule__Fixed_pt_type__Group__521154 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_72_in_rule__Fixed_pt_type__Group__5__Impl21182 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Longdouble_type__Group__0__Impl_in_rule__Longdouble_type__Group__021225 = new BitSet(new long[]{0x0000000000020000L});
        public static final BitSet FOLLOW_rule__Longdouble_type__Group__1_in_rule__Longdouble_type__Group__021228 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_19_in_rule__Longdouble_type__Group__0__Impl21256 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Longdouble_type__Group__1__Impl_in_rule__Longdouble_type__Group__121287 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_17_in_rule__Longdouble_type__Group__1__Impl21315 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Longlong_type__Group__0__Impl_in_rule__Longlong_type__Group__021350 = new BitSet(new long[]{0x0000000000080000L});
        public static final BitSet FOLLOW_rule__Longlong_type__Group__1_in_rule__Longlong_type__Group__021353 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_19_in_rule__Longlong_type__Group__0__Impl21381 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Longlong_type__Group__1__Impl_in_rule__Longlong_type__Group__121412 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_19_in_rule__Longlong_type__Group__1__Impl21440 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Ushort_type__Group__0__Impl_in_rule__Ushort_type__Group__021475 = new BitSet(new long[]{0x0000000000040000L});
        public static final BitSet FOLLOW_rule__Ushort_type__Group__1_in_rule__Ushort_type__Group__021478 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_74_in_rule__Ushort_type__Group__0__Impl21506 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Ushort_type__Group__1__Impl_in_rule__Ushort_type__Group__121537 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_18_in_rule__Ushort_type__Group__1__Impl21565 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Ulong_type__Group__0__Impl_in_rule__Ulong_type__Group__021600 = new BitSet(new long[]{0x0000000000080000L});
        public static final BitSet FOLLOW_rule__Ulong_type__Group__1_in_rule__Ulong_type__Group__021603 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_74_in_rule__Ulong_type__Group__0__Impl21631 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Ulong_type__Group__1__Impl_in_rule__Ulong_type__Group__121662 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_19_in_rule__Ulong_type__Group__1__Impl21690 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Ulonglong_type__Group__0__Impl_in_rule__Ulonglong_type__Group__021725 = new BitSet(new long[]{0x0000000000080000L});
        public static final BitSet FOLLOW_rule__Ulonglong_type__Group__1_in_rule__Ulonglong_type__Group__021728 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_74_in_rule__Ulonglong_type__Group__0__Impl21756 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Ulonglong_type__Group__1__Impl_in_rule__Ulonglong_type__Group__121787 = new BitSet(new long[]{0x0000000000080000L});
        public static final BitSet FOLLOW_rule__Ulonglong_type__Group__2_in_rule__Ulonglong_type__Group__121790 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_19_in_rule__Ulonglong_type__Group__1__Impl21818 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Ulonglong_type__Group__2__Impl_in_rule__Ulonglong_type__Group__221849 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_19_in_rule__Ulonglong_type__Group__2__Impl21877 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Fixed_pt_const_type__Group__0__Impl_in_rule__Fixed_pt_const_type__Group__021914 = new BitSet(new long[]{0x0000000000000000L,0x0000000000000200L});
        public static final BitSet FOLLOW_rule__Fixed_pt_const_type__Group__1_in_rule__Fixed_pt_const_type__Group__021917 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Fixed_pt_const_type__Group__1__Impl_in_rule__Fixed_pt_const_type__Group__121975 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_73_in_rule__Fixed_pt_const_type__Group__1__Impl22003 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Or_expr__Group__0__Impl_in_rule__Or_expr__Group__022038 = new BitSet(new long[]{0x0000000000000002L,0x0000000000002000L});
        public static final BitSet FOLLOW_rule__Or_expr__Group__1_in_rule__Or_expr__Group__022041 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulexor_expr_in_rule__Or_expr__Group__0__Impl22068 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Or_expr__Group__1__Impl_in_rule__Or_expr__Group__122097 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Or_expr__Group_1__0_in_rule__Or_expr__Group__1__Impl22124 = new BitSet(new long[]{0x0000000000000002L,0x0000000000002000L});
        public static final BitSet FOLLOW_rule__Or_expr__Group_1__0__Impl_in_rule__Or_expr__Group_1__022159 = new BitSet(new long[]{0x0000000000000000L,0x0000000000002000L});
        public static final BitSet FOLLOW_rule__Or_expr__Group_1__1_in_rule__Or_expr__Group_1__022162 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Or_expr__Group_1__1__Impl_in_rule__Or_expr__Group_1__122220 = new BitSet(new long[]{0x0004008C00000FF0L});
        public static final BitSet FOLLOW_rule__Or_expr__Group_1__2_in_rule__Or_expr__Group_1__122223 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Or_expr__OperatorAssignment_1_1_in_rule__Or_expr__Group_1__1__Impl22250 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Or_expr__Group_1__2__Impl_in_rule__Or_expr__Group_1__222280 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Or_expr__RightAssignment_1_2_in_rule__Or_expr__Group_1__2__Impl22307 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Xor_expr__Group__0__Impl_in_rule__Xor_expr__Group__022343 = new BitSet(new long[]{0x0000000000000002L,0x0000000000004000L});
        public static final BitSet FOLLOW_rule__Xor_expr__Group__1_in_rule__Xor_expr__Group__022346 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleand_expr_in_rule__Xor_expr__Group__0__Impl22373 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Xor_expr__Group__1__Impl_in_rule__Xor_expr__Group__122402 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Xor_expr__Group_1__0_in_rule__Xor_expr__Group__1__Impl22429 = new BitSet(new long[]{0x0000000000000002L,0x0000000000004000L});
        public static final BitSet FOLLOW_rule__Xor_expr__Group_1__0__Impl_in_rule__Xor_expr__Group_1__022464 = new BitSet(new long[]{0x0000000000000000L,0x0000000000004000L});
        public static final BitSet FOLLOW_rule__Xor_expr__Group_1__1_in_rule__Xor_expr__Group_1__022467 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Xor_expr__Group_1__1__Impl_in_rule__Xor_expr__Group_1__122525 = new BitSet(new long[]{0x0004008C00000FF0L});
        public static final BitSet FOLLOW_rule__Xor_expr__Group_1__2_in_rule__Xor_expr__Group_1__122528 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Xor_expr__OperatorAssignment_1_1_in_rule__Xor_expr__Group_1__1__Impl22555 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Xor_expr__Group_1__2__Impl_in_rule__Xor_expr__Group_1__222585 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Xor_expr__RightAssignment_1_2_in_rule__Xor_expr__Group_1__2__Impl22612 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__And_expr__Group__0__Impl_in_rule__And_expr__Group__022648 = new BitSet(new long[]{0x0000000000000002L,0x0000000000008000L});
        public static final BitSet FOLLOW_rule__And_expr__Group__1_in_rule__And_expr__Group__022651 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleshift_expr_in_rule__And_expr__Group__0__Impl22678 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__And_expr__Group__1__Impl_in_rule__And_expr__Group__122707 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__And_expr__Group_1__0_in_rule__And_expr__Group__1__Impl22734 = new BitSet(new long[]{0x0000000000000002L,0x0000000000008000L});
        public static final BitSet FOLLOW_rule__And_expr__Group_1__0__Impl_in_rule__And_expr__Group_1__022769 = new BitSet(new long[]{0x0000000000000000L,0x0000000000008000L});
        public static final BitSet FOLLOW_rule__And_expr__Group_1__1_in_rule__And_expr__Group_1__022772 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__And_expr__Group_1__1__Impl_in_rule__And_expr__Group_1__122830 = new BitSet(new long[]{0x0004008C00000FF0L});
        public static final BitSet FOLLOW_rule__And_expr__Group_1__2_in_rule__And_expr__Group_1__122833 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__And_expr__OperatorAssignment_1_1_in_rule__And_expr__Group_1__1__Impl22860 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__And_expr__Group_1__2__Impl_in_rule__And_expr__Group_1__222890 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__And_expr__RightAssignment_1_2_in_rule__And_expr__Group_1__2__Impl22917 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Shift_expr__Group__0__Impl_in_rule__Shift_expr__Group__022953 = new BitSet(new long[]{0x0000000300000002L});
        public static final BitSet FOLLOW_rule__Shift_expr__Group__1_in_rule__Shift_expr__Group__022956 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleadd_expr_in_rule__Shift_expr__Group__0__Impl22983 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Shift_expr__Group__1__Impl_in_rule__Shift_expr__Group__123012 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Shift_expr__Group_1__0_in_rule__Shift_expr__Group__1__Impl23039 = new BitSet(new long[]{0x0000000300000002L});
        public static final BitSet FOLLOW_rule__Shift_expr__Group_1__0__Impl_in_rule__Shift_expr__Group_1__023074 = new BitSet(new long[]{0x0000000300000000L});
        public static final BitSet FOLLOW_rule__Shift_expr__Group_1__1_in_rule__Shift_expr__Group_1__023077 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Shift_expr__Group_1__1__Impl_in_rule__Shift_expr__Group_1__123135 = new BitSet(new long[]{0x0004008C00000FF0L});
        public static final BitSet FOLLOW_rule__Shift_expr__Group_1__2_in_rule__Shift_expr__Group_1__123138 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Shift_expr__OperatorAssignment_1_1_in_rule__Shift_expr__Group_1__1__Impl23165 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Shift_expr__Group_1__2__Impl_in_rule__Shift_expr__Group_1__223195 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Shift_expr__RightAssignment_1_2_in_rule__Shift_expr__Group_1__2__Impl23222 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Add_expr__Group__0__Impl_in_rule__Add_expr__Group__023258 = new BitSet(new long[]{0x0000000C00000002L});
        public static final BitSet FOLLOW_rule__Add_expr__Group__1_in_rule__Add_expr__Group__023261 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulemult_expr_in_rule__Add_expr__Group__0__Impl23288 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Add_expr__Group__1__Impl_in_rule__Add_expr__Group__123317 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Add_expr__Group_1__0_in_rule__Add_expr__Group__1__Impl23344 = new BitSet(new long[]{0x0000000C00000002L});
        public static final BitSet FOLLOW_rule__Add_expr__Group_1__0__Impl_in_rule__Add_expr__Group_1__023379 = new BitSet(new long[]{0x0000000C00000000L});
        public static final BitSet FOLLOW_rule__Add_expr__Group_1__1_in_rule__Add_expr__Group_1__023382 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Add_expr__Group_1__1__Impl_in_rule__Add_expr__Group_1__123440 = new BitSet(new long[]{0x0004008C00000FF0L});
        public static final BitSet FOLLOW_rule__Add_expr__Group_1__2_in_rule__Add_expr__Group_1__123443 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Add_expr__OperatorAssignment_1_1_in_rule__Add_expr__Group_1__1__Impl23470 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Add_expr__Group_1__2__Impl_in_rule__Add_expr__Group_1__223500 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Add_expr__RightAssignment_1_2_in_rule__Add_expr__Group_1__2__Impl23527 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Mult_expr__Group__0__Impl_in_rule__Mult_expr__Group__023563 = new BitSet(new long[]{0x0000007000000002L});
        public static final BitSet FOLLOW_rule__Mult_expr__Group__1_in_rule__Mult_expr__Group__023566 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleunary_expr_in_rule__Mult_expr__Group__0__Impl23593 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Mult_expr__Group__1__Impl_in_rule__Mult_expr__Group__123622 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Mult_expr__Group_1__0_in_rule__Mult_expr__Group__1__Impl23649 = new BitSet(new long[]{0x0000007000000002L});
        public static final BitSet FOLLOW_rule__Mult_expr__Group_1__0__Impl_in_rule__Mult_expr__Group_1__023684 = new BitSet(new long[]{0x0000007000000000L});
        public static final BitSet FOLLOW_rule__Mult_expr__Group_1__1_in_rule__Mult_expr__Group_1__023687 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Mult_expr__Group_1__1__Impl_in_rule__Mult_expr__Group_1__123745 = new BitSet(new long[]{0x0004008C00000FF0L});
        public static final BitSet FOLLOW_rule__Mult_expr__Group_1__2_in_rule__Mult_expr__Group_1__123748 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Mult_expr__OperatorAssignment_1_1_in_rule__Mult_expr__Group_1__1__Impl23775 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Mult_expr__Group_1__2__Impl_in_rule__Mult_expr__Group_1__223805 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Mult_expr__RightAssignment_1_2_in_rule__Mult_expr__Group_1__2__Impl23832 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Unary_expr__Group_0__0__Impl_in_rule__Unary_expr__Group_0__023868 = new BitSet(new long[]{0x0000008C00000000L});
        public static final BitSet FOLLOW_rule__Unary_expr__Group_0__1_in_rule__Unary_expr__Group_0__023871 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Unary_expr__Group_0__1__Impl_in_rule__Unary_expr__Group_0__123929 = new BitSet(new long[]{0x0004000000000FF0L});
        public static final BitSet FOLLOW_rule__Unary_expr__Group_0__2_in_rule__Unary_expr__Group_0__123932 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Unary_expr__OperatorAssignment_0_1_in_rule__Unary_expr__Group_0__1__Impl23959 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Unary_expr__Group_0__2__Impl_in_rule__Unary_expr__Group_0__223989 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Unary_expr__ExpressionAssignment_0_2_in_rule__Unary_expr__Group_0__2__Impl24016 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Primary_expr__Group_2__0__Impl_in_rule__Primary_expr__Group_2__024052 = new BitSet(new long[]{0x0004008C00000FF0L});
        public static final BitSet FOLLOW_rule__Primary_expr__Group_2__1_in_rule__Primary_expr__Group_2__024055 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_50_in_rule__Primary_expr__Group_2__0__Impl24083 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Primary_expr__Group_2__1__Impl_in_rule__Primary_expr__Group_2__124114 = new BitSet(new long[]{0x0008000000000000L});
        public static final BitSet FOLLOW_rule__Primary_expr__Group_2__2_in_rule__Primary_expr__Group_2__124117 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleconst_exp_in_rule__Primary_expr__Group_2__1__Impl24144 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Primary_expr__Group_2__2__Impl_in_rule__Primary_expr__Group_2__224173 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_51_in_rule__Primary_expr__Group_2__2__Impl24201 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleinclude_decl_in_rule__Specification__IncludesAssignment_124243 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruledefinition_in_rule__Specification__ContainsAssignment_224274 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_STRING_in_rule__Include_decl__ImportURIAssignment_124305 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Module__IdentifierAssignment_124336 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruledefinition_in_rule__Module__ContainsAssignment_3_024367 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_30_in_rule__Interface_decl__IsAbstractAssignment_0_024403 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_31_in_rule__Interface_decl__IsCustomAssignment_0_124447 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Interface_decl__IdentifierAssignment_224486 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Interface_decl__DerivesFromAssignment_3_124521 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Interface_decl__DerivesFromAssignment_3_2_124560 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleexport_in_rule__Interface_decl__ContainsAssignment_5_024595 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Interface_fwd__IdentifierAssignment_224626 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_75_in_rule__Op_decl__IsOnewayAssignment_024662 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleop_type_spec_in_rule__Op_decl__ContainedTypeAssignment_1_024701 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Op_decl__SharedTypeAssignment_1_124736 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Op_decl__IdentifierAssignment_224771 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleparam_decl_in_rule__Op_decl__ParametersAssignment_4_024802 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleparam_decl_in_rule__Op_decl__ParametersAssignment_4_1_124833 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Op_decl__CanRaiseAssignment_6_224868 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Op_decl__CanRaiseAssignment_6_3_124907 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_STRING_in_rule__Op_decl__ContextsAssignment_7_224942 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_STRING_in_rule__Op_decl__ContextsAssignment_7_3_124973 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulevoid_type_in_rule__Op_type_spec__KindAssignment_1_125004 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleparam_attribute_in_rule__Param_decl__DirectionAssignment_025035 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulebase_type_spec_in_rule__Param_decl__ContainedTypeAssignment_1_025066 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Param_decl__SharedTypeAssignment_1_125101 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Param_decl__IdentifierAssignment_225136 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_76_in_rule__Readonly_attr_spec__IsReadonlyAssignment_0_025172 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulebase_type_spec_in_rule__Readonly_attr_spec__ContainedTypeAssignment_0_2_025211 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Readonly_attr_spec__SharedTypeAssignment_0_2_125246 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Readonly_attr_spec__IdentifierAssignment_0_325281 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Readonly_attr_spec__GetRaisesAssignment_0_625316 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Readonly_attr_spec__GetRaisesAssignment_0_7_125355 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_76_in_rule__Readonly_attr_spec__IsReadonlyAssignment_1_025395 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulebase_type_spec_in_rule__Readonly_attr_spec__ContainedTypeAssignment_1_2_025434 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Readonly_attr_spec__SharedTypeAssignment_1_2_125469 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Readonly_attr_spec__IdentifierAssignment_1_325504 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulebase_type_spec_in_rule__Attr_spec__ContainedTypeAssignment_0_1_025535 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Attr_spec__SharedTypeAssignment_0_1_125570 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Attr_spec__IdentifierAssignment_0_225605 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Attr_spec__GetRaisesAssignment_0_3_0_225640 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Attr_spec__GetRaisesAssignment_0_3_0_3_125679 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Attr_spec__SetRaisesAssignment_0_3_0_5_225718 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Attr_spec__SetRaisesAssignment_0_3_0_5_3_125757 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Attr_spec__SetRaisesAssignment_0_3_1_225796 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Attr_spec__SetRaisesAssignment_0_3_1_3_125835 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulebase_type_spec_in_rule__Attr_spec__ContainedTypeAssignment_1_1_025870 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Attr_spec__SharedTypeAssignment_1_1_125905 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Attr_spec__IdentifierAssignment_1_225940 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Except_decl__IdentifierAssignment_125971 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulemember_in_rule__Except_decl__MembersAssignment_326002 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulearray_type_spec_in_rule__Alias_type__ContainedTypeAssignment_0_126033 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulesimple_type_spec_in_rule__Alias_type__ContainedTypeAssignment_1_1_026064 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Alias_type__SharedTypeAssignment_1_1_126099 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Alias_type__IdentifierAssignment_1_226134 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulesimple_type_spec_in_rule__Array_type_spec__ContainedTypeAssignment_0_026165 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Array_type_spec__SharedTypeAssignment_0_126200 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Array_type_spec__NameAssignment_126235 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleconst_exp_in_rule__Array_type_spec__BoundsAssignment_2_126266 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleobject_type_in_rule__Base_type_spec__KindAssignment_126297 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Struct_type__IdentifierAssignment_126328 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulemember_in_rule__Struct_type__MembersAssignment_326359 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulearray_type_spec_in_rule__Member__ContainedTypeAssignment_0_026390 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulesimple_type_spec_in_rule__Member__ContainedTypeAssignment_1_026421 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Member__IdentifierAssignment_1_126452 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulestruct_type_in_rule__Member__ContainedTypeAssignment_2_026483 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Member__IdentifierAssignment_2_126514 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Member__SharedTypeAssignment_3_026549 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Member__IdentifierAssignment_3_126584 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Union_type__IdentifierAssignment_126615 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleswitch_type_spec_cont_in_rule__Union_type__ContainedDiscrimAssignment_4_026646 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Union_type__SharedDiscrimAssignment_4_126681 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulecase_stmt_in_rule__Union_type__UnionMembersAssignment_726716 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulechar_type_in_rule__Switch_type_spec_cont__KindAssignment_1_126747 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleboolean_type_in_rule__Switch_type_spec_cont__KindAssignment_2_126778 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleconst_exp_in_rule__Case_stmt__LabelAssignment_0_0_0_126809 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulearray_type_spec_in_rule__Case_stmt__ContainedTypeAssignment_0_126840 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleconst_exp_in_rule__Case_stmt__LabelAssignment_1_0_0_126871 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulesimple_type_spec_in_rule__Case_stmt__ContainedTypeAssignment_1_1_026902 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Case_stmt__SharedTypeAssignment_1_1_126937 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Case_stmt__IdentifierAssignment_1_226972 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Enum_type__IdentifierAssignment_127003 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleenum_member_in_rule__Enum_type__MembersAssignment_327034 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleenum_member_in_rule__Enum_type__MembersAssignment_4_127065 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Enum_member__IdentifierAssignment27096 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleconst_type_in_rule__Const_decl__ContainedTypeAssignment_1_027127 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Const_decl__SharedTypeAssignment_1_127162 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Const_decl__IdentifierAssignment_227197 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleconst_exp_in_rule__Const_decl__ConstValueAssignment_427228 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulesimple_type_spec_in_rule__Sequence_type__ContainedTypeAssignment_2_027259 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__Sequence_type__SharedTypeAssignment_2_127294 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleconst_exp_in_rule__Sequence_type__BoundAssignment_3_127329 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleconst_exp_in_rule__Stringdef_type__BoundAssignment_227360 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleconst_exp_in_rule__Wide_stringdef_type__BoundAssignment_227391 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleconst_exp_in_rule__Fixed_pt_type__DigitsAssignment_227422 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleconst_exp_in_rule__Fixed_pt_type__ScaleAssignment_427453 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulefloat_type_in_rule__Floating_pt_type__KindAssignment_027484 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruledouble_type_in_rule__Floating_pt_type__KindAssignment_127515 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulelongdouble_type_in_rule__Floating_pt_type__KindAssignment_227546 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleshort_type_in_rule__Integer_type__KindAssignment_027577 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulelong_type_in_rule__Integer_type__KindAssignment_127608 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulelonglong_type_in_rule__Integer_type__KindAssignment_227639 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleushort_type_in_rule__Integer_type__KindAssignment_327670 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleulong_type_in_rule__Integer_type__KindAssignment_427701 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleulonglong_type_in_rule__Integer_type__KindAssignment_527732 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulechar_type_in_rule__Charstr_type__KindAssignment_027763 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulewide_char_type_in_rule__Charstr_type__KindAssignment_127794 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulestring_type_in_rule__Charstr_type__KindAssignment_227825 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulewide_string_type_in_rule__Charstr_type__KindAssignment_327856 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleboolean_type_in_rule__Other_type__KindAssignment_027887 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleoctet_type_in_rule__Other_type__KindAssignment_127918 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleany_type_in_rule__Other_type__KindAssignment_227949 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_77_in_rule__Or_expr__OperatorAssignment_1_127985 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulexor_expr_in_rule__Or_expr__RightAssignment_1_228024 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_78_in_rule__Xor_expr__OperatorAssignment_1_128060 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleand_expr_in_rule__Xor_expr__RightAssignment_1_228099 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_79_in_rule__And_expr__OperatorAssignment_1_128135 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleshift_expr_in_rule__And_expr__RightAssignment_1_228174 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Shift_expr__OperatorAlternatives_1_1_0_in_rule__Shift_expr__OperatorAssignment_1_128205 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleadd_expr_in_rule__Shift_expr__RightAssignment_1_228238 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Add_expr__OperatorAlternatives_1_1_0_in_rule__Add_expr__OperatorAssignment_1_128269 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rulemult_expr_in_rule__Add_expr__RightAssignment_1_228302 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Mult_expr__OperatorAlternatives_1_1_0_in_rule__Mult_expr__OperatorAssignment_1_128333 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleunary_expr_in_rule__Mult_expr__RightAssignment_1_228366 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleunary_operator_in_rule__Unary_expr__OperatorAssignment_0_128397 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleprimary_expr_in_rule__Unary_expr__ExpressionAssignment_0_228428 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_RULE_ID_in_rule__ConstantDefRef__ConstantAssignment28463 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_ruleliteral_in_rule__ValueExpression__ValueAssignment28498 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Alias_type__Group_0__0_in_synpred305216 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Member__Group_0__0_in_synpred385552 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Member__Group_1__0_in_synpred395570 = new BitSet(new long[]{0x0000000000000002L});
        public static final BitSet FOLLOW_rule__Case_stmt__Group_0__0_in_synpred455775 = new BitSet(new long[]{0x0000000000000002L});
    }


}